美文网首页
matlab—数据处理的函数

matlab—数据处理的函数

作者: 龙鹰图腾223 | 来源:发表于2019-08-05 01:28 被阅读0次

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

相关文章

网友评论

      本文标题:matlab—数据处理的函数

      本文链接:https://www.haomeiwen.com/subject/qmikdctx.html