Main Content

lag

timetable 内のデータをタイムシフト

説明

TT2 = lag(TT1)TT1 内の各変数のデータを 1 タイム ステップずつ先の時間に進めます。先の時間へのシフトは "ラグ" です。TT1 の行時間は規則的でなければなりません。

timetable TT1TT2 には同じ行時間があります。各変数のデータを先にシフトすると、lagTT2 の 1 番目の行を欠損データ インジケーターで埋めます。

TT2 = lag(TT1,n) はデータを n タイム ステップ分シフトします。n は整数でなければなりません。n が正の場合、lag はデータを先の時間にシフトします ("ラグ")。n が負の場合、lag はデータを前の時間にシフトします ("リード")。

TT2 = lag(TT1,dt) は時間間隔 dt でデータをシフトします。dt は期間またはカレンダー期間のいずれかです。dtTT1 の規則的なタイム ステップの倍数でなければなりません。

すべて折りたたむ

気温データを変数としてもつ timetable を作成します。データを 1 タイム ステップ先にシフトし、元の timetable と比較します。

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

比較するため 2 つの timetable を同期します。これらの timetable は既に同じ行時間をもっているため、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  

気温データを変数としてもつ timetable を作成します。データの時間を複数のタイム ステップ分シフトします。

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

データを先に 2 タイム ステップ分シフトします。

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

データを前に 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

気温データを変数としてもつ timetable を作成します。データの時間を 2 カレンダー月分シフトします。

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 

入力引数

すべて折りたたむ

入力 timetable。

規則的な timetable においてデータをシフトするタイム ステップ数。整数として指定します。

規則的な timetable においてデータをシフトする時間間隔。duration またはカレンダー期間として指定します。

拡張機能

バージョン履歴

R2016b で導入