1、rmmissing 删除缺失的条目
https://ww2.mathworks.cn/help/matlab/ref/rmmissing.html 官方文档
R = rmmissing(A)
如果 A 是向量,则 rmmissing 会删除包含缺失数据的所有条目。如果 A 是矩阵或表,则 rmmissing 会删除包含缺失数据的所有行。缺失值的定义取决于 A 的数据类型。(相当于python里面的dropna)
可以:
只删除在 Age 或 ID 表变量中包含缺失值的行。
R = rmmissing(A,'DataVariables',{'Age','ID'})
R = rmmissing(A,'DataVariables',@isnumeric)
2、filloutliers 检测并替换数据中的离群值
https://ww2.mathworks.cn/help/matlab/ref/filloutliers.html
B = filloutliers(A,fillmethod,movmethod,window)
查找 A 中的离群值并根据 fillmethod 替换它们。例如,filloutliers(A,'previous') 将离群值替换为上一个非离群值元素。默认情况下,离群值是指与中位数相差超过三倍经过换算的中位数绝对偏差 (MAD)的值。如果 A 是矩阵或表,则 filloutliers 分别对每一列进行运算。如果 A 是多维数组,则 filloutliers 沿大小不等于 1 的第一个维度进行运算。

3、quantile 分位数函数
q_stop = quantile(data(i), 0.95);%从小到大,95%位置的数
q_work = quantile(data(i), 0.05);%从小到大,5%位置的数
相当于 python里面的np.percentile(train_s, 50) 只不过python里面用的是百位数
4、switch数组问题
switch 和 case后面不能用矩阵,怎么改动可以实现???
答:将矩阵写成字符串,注意逗号和空格的区别,如下例所示。
judge = [state_rpm state_sampling]; %judge = [0 1]
switch mat2str(judge)
case '[-1 -1]'
state2 = -1;%没有数据
case {'[0 0]','[0 -1]','[-1 0]','[0 1]','[1 -1]','[1 0]'}
state2 = 0;%停机
otherwise
state2 = 2;%停机
end
网友评论