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处理excel文件中的数据方法如下:1、首先生成一个带有数据的excel文件,代码如下图所示
2、编制一个函数,其功能是处理excel工作表中的数据的,在这种情况下,设置范围为[-3,3]。具体的函数代码如下图所示:
3、向excel文件 myExample.xlsx中添加一些数据,具体代码如下图所示,可以看到文件 myExample.xlsx文件中的数据已经改变。而且表中的数据范围在 -6.6493 和 3.4845之间。
4、从上一部的结果可以看出表中的数据范围在 -6.6493 和 3.4845之间。这一步就是要读取表中的数据,重置任何超出[-3,3]范围的数据,并且设定数据表的表名,具体代码及结果如下图所示:
5、修正上一步编制的函数setMinMax,使其能够返回数值变化的数据的位置索引(数据从1开始,按列从上到下,从左到右,进行编号索引)。修改代码如下图郑老所示:
6、运行调用该修正后的函数setMinMaxModify(Data),使其返回变化数据的索引值。如下图所示:
注意事项:
要实现excel里面的数据和matlab里面互相导入昌辩,各位需要安装office2007及以上版本(2003没有验证)。wps是不行的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)