Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

lag

对时间表中的数据进行时移

说明

示例

TT2 = lag(TT1)TT1 中每个变量的数据在时间上向前移动一个时间步。在时间上向前移动一次称为一个时滞TT1 的行时间必须为规则时间。

时间表 TT1TT2 具有相同的行时间。当您将每个变量中的数据向前移动时,lag 将在 TT2 的第一行填入缺失数据指示符。

示例

TT2 = lag(TT1,n) 将数据移动 n 个时间步。n 必须为整数。如果 n 为正,则 lag 在时间上将数据向前移动(一个时滞)。如果 n 为负,则 lag 在时间上将数据向后移动(一个时滞)。

示例

TT2 = lag(TT1,dt) 按时间间隔 dt 移动数据。dt 为持续时间或日历持续时间。dt 必须为 TT1 的规则时间步的倍数。

示例

全部折叠

创建一个以温度数据作为变量的时间表。将数据在时间上向前移动一个时间步,然后与原时间表进行比较。

Time = datetime('2015-12-18 12:00:00') + days(1:5)';
Temp = [43 42.6 42.3 39.1 37.3]';
TT = timetable(Time,Temp)
TT=5×1 timetable
            Time            Temp
    ____________________    ____

    19-Dec-2015 12:00:00      43
    20-Dec-2015 12:00:00    42.6
    21-Dec-2015 12:00:00    42.3
    22-Dec-2015 12:00:00    39.1
    23-Dec-2015 12:00:00    37.3

TT2 = lag(TT)
TT2=5×1 timetable
            Time            Temp
    ____________________    ____

    19-Dec-2015 12:00:00     NaN
    20-Dec-2015 12:00:00      43
    21-Dec-2015 12:00:00    42.6
    22-Dec-2015 12:00:00    42.3
    23-Dec-2015 12:00:00    39.1

同步要进行比较的两个时间表。由于时间表已经具有相同的行时间,synchronize 将重命名变量并进行水平串联。

synchronize(TT,TT2)
ans=5×2 timetable
            Time            Temp_TT    Temp_TT2
    ____________________    _______    ________

    19-Dec-2015 12:00:00       43         NaN  
    20-Dec-2015 12:00:00     42.6          43  
    21-Dec-2015 12:00:00     42.3        42.6  
    22-Dec-2015 12:00:00     39.1        42.3  
    23-Dec-2015 12:00:00     37.3        39.1  

创建一个以温度数据作为变量的时间表。将数据在时间上移动多个时间步。

Time = datetime('2015-12-18 12:00:00') + days(1:5)';
Temp = [43 42.6 42.3 39.1 37.3]';
TT = timetable(Time,Temp)
TT=5×1 timetable
            Time            Temp
    ____________________    ____

    19-Dec-2015 12:00:00      43
    20-Dec-2015 12:00:00    42.6
    21-Dec-2015 12:00:00    42.3
    22-Dec-2015 12:00:00    39.1
    23-Dec-2015 12:00:00    37.3

将数据向前移动两个时间步。

TT2 = lag(TT,2)
TT2=5×1 timetable
            Time            Temp
    ____________________    ____

    19-Dec-2015 12:00:00     NaN
    20-Dec-2015 12:00:00     NaN
    21-Dec-2015 12:00:00      43
    22-Dec-2015 12:00:00    42.6
    23-Dec-2015 12:00:00    42.3

将数据向后移动三个时间步。

TT2 = lag(TT,-3)
TT2=5×1 timetable
            Time            Temp
    ____________________    ____

    19-Dec-2015 12:00:00    39.1
    20-Dec-2015 12:00:00    37.3
    21-Dec-2015 12:00:00     NaN
    22-Dec-2015 12:00:00     NaN
    23-Dec-2015 12:00:00     NaN

创建一个以温度数据作为变量的时间表。将数据在时间上移动两个日历月。

Time = datetime('2015-12-01 12:00:00') + calmonths(1:5)';
Temp = [43 37 35 39 45]';
TT = timetable(Time,Temp)
TT=5×1 timetable
            Time            Temp
    ____________________    ____

    01-Jan-2016 12:00:00     43 
    01-Feb-2016 12:00:00     37 
    01-Mar-2016 12:00:00     35 
    01-Apr-2016 12:00:00     39 
    01-May-2016 12:00:00     45 

TT2 = lag(TT,calmonths(2))
TT2=5×1 timetable
            Time            Temp
    ____________________    ____

    01-Jan-2016 12:00:00    NaN 
    01-Feb-2016 12:00:00    NaN 
    01-Mar-2016 12:00:00     43 
    01-Apr-2016 12:00:00     37 
    01-May-2016 12:00:00     35 

输入参数

全部折叠

输入时间表。

规则时间表中要移动数据的时间步数,指定为整数。

规则时间表中要移动数据的时间间隔,指定为持续时间或日历持续时间。

在 R2016b 中推出