速查表

利用 MATLAB 预处理时间序列数据

此参考资料显示的是常见用例,并非完整列表。

时间表

MATLAB 数据类型,用于组织和处理时间序列数据。

时间表的组成

tt = timetable(times, var1, var2, ... ,varN);

(所有变量都必须具有相同的行数。)

tt = table2timetable(t);

(“t”中的第一个 datetime 或 duration 变量成为行时间。)

时间表操作

访问数据

以下代码返回相同的数组

tt.Temperature

tt{:,'Temperature'} tt{:,1}

了解更多

添加新变量

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'

了解更多

检测离群值

TF = isoutlier(A,method);

使用以下方法识别离群值:

'median','mean','quartiles', 'grubbs','gesd'

了解更多

检测变化点

TF = ischange(A,method);

使用以下方法查找突然变化:'mean','variance','linear'

了解更多

合并时间表

将多个时间表同步到一个公共时间向量。

tt = synchronize(tt1,tt2,...,ttN);

了解更多

同步经常会产生缺失数据点(即变量未被测量的时间点)。synchronize 支持多种调整数据来填充空隙的方法:

填充:'fillwithmissing','fillwithconstant'

插值:'linear','spline','pchip'

最近邻:'previous', 'next','nearest'

聚合:'mean','min','max',@func,...

缺失数据

查找缺失值

TF = ismissing(tt);

了解更多

填充缺失值

tt = fillmissing(tt,method);

使用以下方法,用根据邻近数据点计算得到的值来替换缺失值:

'previous','next','nearest',

'linear','spline','pchip'

了解更多

删除包含缺失值的行

tt = rmmissing(tt);

大数据

tall 数组扩展了 MATLAB 函数功能,可以处理无法载入内存的大数据。

创建 tall 时间表:

% 创建一个指向数据的% 数据存储

ds = datastore('*.csv');

% 从数据存储创建% tall 表

t = tall(ds);

了解更多

% 转换为时间表

tt = table2timetable(t);