Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

timetable 内のデータのリサンプリングと集約

この例では、timetable 内のデータをリサンプリングおよび集約する方法を示します。timetable は table の一種で、各行に時刻が関連付けられています。変数の行数が同じであれば、データ型やサイズが異なる列方向のデータ変数を 1 つの timetable に格納できます。関数 retime を使用して、timetable のデータをリサンプリングしたり、指定した時間ビンに集約したりできます。

timetable のインポート

2015 年 11 月 15 日から 2015 年 11 月 19 日の間に得られた気象測定値を含む timetable を読み込みます。この timetable には、この期間に得られた湿度、気温、気圧の測定値が含まれます。

load outdoors
outdoors(1:5,:)
ans=5×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:24        49          51.3          29.61   
    2015-11-15 01:30:24      48.9          51.5          29.61   
    2015-11-15 03:00:24      48.9          51.5          29.61   
    2015-11-15 04:30:24      48.8          51.5          29.61   
    2015-11-15 06:00:24      48.7          51.5           29.6   

timetable が規則的かどうかを判定します。規則的な timetable では、すべての連続する行時間の差が同じです。outdoors は規則的な timetable ではありません。

TF = isregular(outdoors)
TF = logical
   0

タイム ステップの差を求めます。約 30 秒から 1 時間半の間で変動しています。

dt = unique(diff(outdoors.Time))
dt = 3x1 duration
   00:00:24
   01:29:36
   01:30:00

内挿による timetable のリサンプリング

関数 retime を使用して、timetable 内のデータを調整します。1 時間ごとの時間ベクトルを指定します。timetable データを内挿して新しい行時間に変換します。

TT = retime(outdoors,'hourly','spline');
TT(1:5,:)
ans=5×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:00     49.001        51.298          29.61  
    2015-11-15 01:00:00     48.909        51.467          29.61  
    2015-11-15 02:00:00     48.902         51.51          29.61  
    2015-11-15 03:00:00       48.9          51.5          29.61  
    2015-11-15 04:00:00     48.844        51.498         29.611  

最近傍値による timetable のリサンプリング

TT の 1 時間ごとの時間ベクトルを指定します。TT 内の各行について、outdoors 内で行時間が最も近い対応する行から値をコピーします。

TT = retime(outdoors,'hourly','nearest');
TT(1:5,:)
ans=5×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:00        49          51.3          29.61   
    2015-11-15 01:00:00      48.9          51.5          29.61   
    2015-11-15 02:00:00      48.9          51.5          29.61   
    2015-11-15 03:00:00      48.9          51.5          29.61   
    2015-11-15 04:00:00      48.8          51.5          29.61   

timetable データの集約と日次平均値の計算

関数 retime は、mean などの集約メソッドを提供します。outdoors 内のデータの日次平均値を計算します。

TT = retime(outdoors,'daily','mean');
TT
TT=4×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:00     48.931        51.394         29.607  
    2015-11-16 00:00:00     47.924        51.571         29.611  
    2015-11-17 00:00:00      48.45        51.238         29.613  
    2015-11-18 00:00:00       49.5          50.8          29.61  

timetable データの規則的な時間への調整

6 時間の平均値を計算します。入力引数 'regular' と、名前と値のペアの引数 'TimeStep' を使用して、一定のタイム ステップを指定します。

TT = retime(outdoors,'regular','mean','TimeStep',hours(6));
TT(1:5,:)
ans=5×3 timetable
           Time            Humidity    TemperatureF    PressureHg
    ___________________    ________    ____________    __________

    2015-11-15 00:00:00       48.9         51.45          29.61  
    2015-11-15 06:00:00       48.9         51.45           29.6  
    2015-11-15 12:00:00     49.025         51.45          29.61  
    2015-11-15 18:00:00       48.9        51.225         29.607  
    2015-11-16 00:00:00       48.5          51.4          29.61  

または、同じ 6 時間の間隔をもつ時間ベクトルを指定することもできます。timetable を表示する際、時間ベクトルに日付と時刻の両方が表示される形式を指定します。

tv = datetime(2015,11,15):hours(6):datetime(2015,11,18);
tv.Format = 'dd-MMM-yyyy HH:mm:ss';
TT = retime(outdoors,tv,'mean');
TT(1:5,:)
ans=5×3 timetable
            Time            Humidity    TemperatureF    PressureHg
    ____________________    ________    ____________    __________

    15-Nov-2015 00:00:00       48.9         51.45          29.61  
    15-Nov-2015 06:00:00       48.9         51.45           29.6  
    15-Nov-2015 12:00:00     49.025         51.45          29.61  
    15-Nov-2015 18:00:00       48.9        51.225         29.607  
    16-Nov-2015 00:00:00       48.5          51.4          29.61  

参考

| | |

関連するトピック