このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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
参考
timetable
| table2timetable
| synchronize
| retime