時系列データをMATLABのテーブル型データに読み込む

時系列データをMATLABのテーブルに格納する場合の例をメモしておきます。

CSVデータが下のような場合を考えます。
2020/03/25, 17:02:55, 12.523

次のようなコードが使えます。最終的に時間を経過時間にしています。

最初の列が日付、次の列が時刻なのでスペースで連結しています。

dataStartLine = 5;
delimiter = ',';
varNames = {'date', 'time', 'hoge' };
varTypes = {'string', 'string', 'double'};
extraColRule = 'ignore';
opts = delimitedTextImportOptions('VariableNames',varNames,...
                                  'VariableTypes',varTypes,...
                                  'Delimiter',delimiter,...
                                  'DataLines', dataStartLine,...
                                  'ExtraColumnsRule',extraColRule); 
csvName = "fuga.CSV";
preview(csvName, opts)

data = readtable(csvName, opts);
dateTime = data.date + " " + data.time;
dateTime = datetime(dateTime, 'InputFormat', 'yyyy/MM/dd HH:mm:ss');
time = dateTime - dateTime(1);

上記の例よりも、データ列が多い場合はvarName, varTypeを適宜追加すればOKです。

Adsense広告