利用 MATLAB 预处理时间序列数据
此参考资料显示的是常见用例,并非完整列表。
时间表操作
访问数据
以下代码返回相同的数组
添加新变量
tt.newVar = zeros(height(tt),1);
更改变量名称
tt.properties.VariableNames = newNames;
(名称必须为有效的 MATLAB 标识符)
提示:使用 matlab.lang.makevalidname 从可能无效的名称创建有效名称。
使用 Retime 对数据进行重新采样
tt = retime(tt,newtimes,method);
method 用于在重新定时后填充空隙,具有与 synchronize 相同的选项(参见“合并时间表”)。
数据清洗
平滑数据
B = smoothdata(A,method);
使用以下方法平滑含噪数据:
'movmean','movmedian','gaussian', 'lowess','loess','rlowess', 'rloess','sgolay'
合并时间表
将多个时间表同步到一个公共时间向量。
tt = synchronize(tt1,tt2,...,ttN);
同步经常会产生缺失数据点(即变量未被测量的时间点)。synchronize 支持多种调整数据来填充空隙的方法:
填充:'fillwithmissing','fillwithconstant'
插值:'linear','spline','pchip'
最近邻:'previous', 'next','nearest'
聚合:'mean','min','max',@func,...
大数据
tall 数组扩展了 MATLAB 函数功能,可以处理无法载入内存的大数据。
创建 tall 时间表:
% 创建一个指向数据的% 数据存储
ds = datastore('*.csv');
% 从数据存储创建% tall 表
t = tall(ds);
% 转换为时间表
tt = table2timetable(t);