这个例子展示了如何使用冒号(:)操作符生成的序列datetime
或持续时间
值的方法与创建规则间隔的数字向量的方法相同。
使用默认步长
创建一个日期时间序列,从2013年11月1日开始,到2013年11月5日结束。默认的步长是一个日历日。
t1 = datetime(1 2013年,11日,8,0,0);t2 = datetime(2013、11、5、8 0 0);t = t1, t2
t =1 x5 datetime01- 11 -2013 08:00:00 02- 11 -2013 08:00:00 03- 11 -2013 08:00:00
指定步长
属性指定2个日历天的步长caldays
函数。
t = t1: caldays (2): t2
t =1 x3 datetime01- 11 -2013 08:00:00 03- 11 -2013 08:00:00 05- 11 -2013 08:00:00
以天以外的单位指定步长。创建一个间隔18小时的datetime值序列。
t = t1:小时(18):t2
t =1 x6 datetimecolumn 4 to 6 03- 11 -2013 14:00:00 04- 11 -2013 08:00:00 05- 11 -2013 02:00:00
使用年
,天
,分钟
,秒
函数使用其他固定长度的日期和时间单位创建datetime和duration序列。创建一个持续时间值序列,范围在0到3分钟之间,递增30秒。
d = 0:秒(30):分钟(3)
d =1 x7持续时间0秒30秒60秒90秒120秒150秒180秒
比较固定长度持续时间和日历持续时间步骤大小
指定一个时区t1
和t2
.在美国/ New_York
时区,t1
现在发生在夏时制改变之前。
t1。时区=“美国/ New_York”;t2。时区=“美国/ New_York”;
如果您使用一个日历日的步长来创建序列,则连续之间的差datetime
值并不总是24小时。
t = t1, t2;dt = diff (t)
dt =1 x4持续时间24:00:00 25:00:00 24:00:00 24:00:00
创建一个datetime值序列,间隔一个固定长度的天,
t = t1:天(1):t2
t =1 x5 datetime01- 11 -2013 08:00:00 02- 11 -2013 08:00:00 03- 11 -2013 07:00:00
验证之间的差异连续datetime
值为24小时。
dt = diff (t)
dt =1 x4持续时间24:00:00 24:00:00 24:00:00 24:00:00 24:00:00 24:00:00
整数步长
如果以整数形式指定步长,则将其解释为24小时天数。
t = t1:1: t2
t =1 x5 datetime01- 11 -2013 08:00:00 02- 11 -2013 08:00:00 03- 11 -2013 07:00:00
此示例演示如何向datetime添加持续时间或日历持续时间,以创建一个datetime值序列。
创建一个datetime标量,表示2013年11月1日上午8:00。
t1 = datetime(1 2013年,11日,8,0,0);
向datetime添加一个固定长度的小时序列。
T = t1 +小时(0:2)
t =1 x3 datetime01- 11 -2013 08:00:00 01- 11 -2013 09:00:00 01- 11 -2013 10:00:00
将日历月序列添加到日期时间。
T = t1 + calmonths(1:5)
t =1 x5 datetimecolumn 1 to 3 01-Dec-2013 08:00:00 01-Jan-2014 08:00:00 01-Feb-2014 08:00:00
每一个datetimet
发生在每个月的第一天。
确认日期t
间隔1个月。
dt = caldiff (t)
dt =1 x4 calendarDuration一个月一个月一个月一个月
确定每个日期之间的天数。
dt = caldiff (t)“天”)
dt =1 x4 calendarDuration31d 31d 28d 31d
在日期(2014年1月31日)中添加一些日历月份,以创建一个落在每个月最后一天的日期序列。
T = datetime(2014,1,31) + calmonths(0:11)
t =1 x12 datetime第1至5栏31- 1- 2014 28- 2 -2014 31- 3 -2014 30- 4 -2014 31- 5 -2014第6至10栏30- 6 -2014 31- 7 -2014 31- 8- 2014 30- 9 -2014 31- 10 -2014
这个例子展示了如何使用linspace
函数在两个指定的端点之间创建等间距的datetime或duration值。
创建一个由2014年4月14日到2014年8月4日之间等间隔的5个日期组成的序列。首先,定义端点。
一个= datetime(2014年,04 14);B = datetime(2014, 08年,04);
第三个输入linspace
指定在端点之间生成的线性间隔点的数目。
C = linspace (A, B, 5)
C =1 x5 datetime2014年4月14日2014年5月12日2014年6月07日2014年7月04日2014年8月
创建一个由6个等距持续时间组成的序列,间隔从1小时到5.5小时。
=时间(1,0,0);B =持续时间(5 30 0);C = linspace (A, B, 6)
C =1 x6持续时间01:00:00 01:54:00 02:48:00 03:42:00 04:36:00 05:30:00
这个例子展示了如何使用dateshift
函数生成日期和时间序列,其中每个实例遵守与日历单元或时间单元相关的规则。例如,每个日期时间必须发生在一个月的开始、一周的某一天或一分钟的结束。序列中的结果datetime值不一定是等距的。
每周的具体日期
生成一个日期序列,由星期一的接下来三次出现组成。首先,定义今天的日期。
t1 = datetime (“今天”,“格式”,“dd-MMM-yyyy eee”)
t1 =datetime2021年- 2月23日星期二
第一个输入dateshift
总是datetime
要从中生成序列的数组。指定“dayofweek”
作为第二个输入,表示输出序列中的datetime值必须落在一周中的特定日期。您可以通过数字或名称指定星期几。例如,可以指定Monday为2
或“周一”
.
t = dateshift (t1,“dayofweek”、2、1:3)
t =1 x3 datetime01-Mar-2021 Mon 08-Mar-2021 Mon 15-Mar-2021 Mon
日期在月初
生成一个从2014年4月1日开始的月初日期序列。指定“开始”
作为第二个输入dateshift
指示输出序列中的所有datetime值应落在特定时间单位的开始位置。第三个输入参数定义了时间单位,在本例中是月。最后的输入dateshift
可以是一个整数值数组,指定如何t1
应该是发生了变化。在这种情况下,0
对应于当月的开始,并且4
对应于第四个月的开始t1
.
t1 = datetime(2014、04 01);t = dateshift (t1,“开始”,“月”, 0:4)
t =1 x5 datetime01- 4 -2014 01- 5 -2014 01- 6 -2014 01- 7 -2014 01- 8月
日期在月底
生成从2014年4月1日开始的月末日期序列。
t1 = datetime(2014、04 01);t = dateshift (t1,“结束”,“月”0:2)
t =1 x3 datetime30 - 4月- 2014年31日- 2014年5月- 2014年- 6月30日
确定每个日期之间的天数。
dt = caldiff (t)“天”)
dt =1 x2 calendarDuration31 d 30 d
日期不是等间隔的。
其他日期和时间单位
您可以指定其他时间单位,如周、天、小时。
t1 = datetime (“现在”)
t1 =datetime23 - 2月- 2021 14:54:32
t = dateshift (t1,“开始”,“小时”, 0:4)
t =1 x5 datetime列4至5列23-Feb-2021 17:00:00 23-Feb-2021 18:00:00 23-Feb-2021 18:00:00
以前出现的日期和时间
生成以前一个小时开始的datetime值序列。最后一个输入的负整数dateshift
对应的datetime值早于t1
.
t = dateshift (t1,“开始”,“小时”1:1)
t =1 x3 datetime23-Feb-2021 13:00:00 23-Feb-2021 14:00:00 23-Feb-2021 15:00:00