Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

caldiff

日历数学连续差分

说明

示例

dt = caldiff(t) 根据日历分量年、月、日和时间计算 t 中的相邻日期时间值之间的差分。caldiff 沿大小不等于 1 的第一个数组维度计算差分。

  • 如果 t 是长度为 m 的向量,则 dt = caldiff(t) 返回长度为 m-1 的向量。dt 的元素是 t 相邻元素之间的差分。

    dt = [between(t(1),t(2)), between(t(2),t(3)),..., between(t(m-1),t(m))]
  • 如果 t 是非向量 p×m 矩阵,则 dt = caldiff(t) 返回大小为 (p-1)×m 的矩阵,其元素是 t 的行之间的差分。

    dt(:,I) = [between(t(1,I),t(2,I), between(t(2,I),t(3,I)), ..., 
    between(t(p-1,I),t(p,I))]

示例

dt = caldiff(t,components) 根据指定的日历或时间分量计算 t 中的连续日期时间之间的差分。

dt = caldiff(t,components,dim) 沿 dim 指定的维度计算连续日期时间之间的差分。

示例

全部折叠

创建一个 datetime 数组,然后按日历分量计算这些值之间的差分。

t = [datetime('yesterday');datetime('today');datetime('tomorrow')]
t = 3x1 datetime
   18-Aug-2023
   19-Aug-2023
   20-Aug-2023

D = caldiff(t)
D = 2x1 calendarDuration
   1d
   1d

创建一个 datetime 数组,然后按天计算这些值之间的差分。

t = datetime('now') + calmonths(0:3)
t = 1x4 datetime
   19-Aug-2023 14:40:34   19-Sep-2023 14:40:34   19-Oct-2023 14:40:34   19-Nov-2023 14:40:34

D = caldiff(t,'days')
D = 1x3 calendarDuration
   31d   30d   31d

按周和天计算这些日期时间值之间的差分。

D = caldiff(t,{'weeks','days'})
D = 1x3 calendarDuration
   4w 3d   4w 2d   4w 3d

输入参数

全部折叠

日期时间输入,指定为 datetime 数组。

日历或时间分量,指定为下列字符向量之一,或包含其中一个或多个值的元胞数组或字符串数组:

  • 'years'

  • 'quarters'

  • 'months'

  • 'weeks'

  • 'days'

  • 'time'

'time' 之外,以上分量都是灵活的时间长度。例如,1 个月在添加到一月份的日期时间中时,和添加到二月份的日期时间中时,代表着不同的时间长度。

caldiff 从最大的分量开始按降序作用于日历或时间分量。

通常,t(2:m) 不等于 t(1:m-1) + dt,除非在 components 中包括 'time'

示例: {'years','quarters'}

数据类型: char | cell | string

沿其运算的维度,指定为正整数。如果未指定值,则默认值是大小不等于 1 的第一个数组维度。

输出参数

全部折叠

差分数组,以标量、向量、矩阵或多维 calendarDuration 数组形式返回。

提示

  • 要以精确固定长度的小时、分钟和秒单位计算 t1t2 中日期时间之间的连续差分,请使用 diff(t)

扩展功能

版本历史记录

在 R2014b 中推出