jjdf.net
当前位置:首页 >> 如何去除矩阵中的异常数据 – MATLAB中文论坛 >>

如何去除矩阵中的异常数据 – MATLAB中文论坛

异常数据是指NaN么?是的话isnan(x)可以判断x是否为NaN,x是数组的话find(isnan(x))可以查找出NaN的位置

data=[1,2,7,7,8,9,9,10,7,8,15,23]'; % 输入数据 mu = mean(data);% 计算平均值 a=4;%输入阈值 outliers = abs(data - mu) > a;%求出离群值的位置 nout = sum(outliers) % 计算离群值的个数并显示 data(outliers) = [];%去除离群值 data'%显示...

a=[1 2 3;0 0 0;2 1 6]; a(all(a==0,2),:)=[] ____________________ 如果是3维矩阵那就必须是某个面(整个2维矩阵)全部都是0,如果单一行是0,这个面的其他元素不为0,怎么能去掉呢,因为一删就是删一个面埃

unique函数用来去除矩阵A中重复的元素, 比如说A=[1,2,3,3,4],那么unique(A)=[1,2,3,4]; 如果A=[1,2,3;3,4,5],那么unique(A)=[1,2,3,4,5]; unique(A,'rows')用来去除矩阵A中重复的行, 比如说A=[1,2,3;4,5,6;1,2,3], 那么unique(A,'rows')=[1,2...

以矩阵A为例。 在matlab中,A(i, j)表示的是矩阵A中第i行第j列的元素; A(:, j) 表示矩阵A中第j列的所有元素; A(i, :) 表示矩阵A中第i行的所有元素。 单单取出某一行,比如A(i, :) ,就是一个行向量,要改变该行向量的元素,即用另一个行向量b...

A(A

去第n列可以这样。 S(:,n) = []; 去第m行可以这样。 S(m,:)=[]; 你可以试下。

可以通过find函数来搞定。 可以通过importdata('data.txt')将数据文件data.txt导入数组A中。 A=importdata('data.txt') 然后通过命令 z=find(~isnan(A)) 将A数组中NaN所在的编号给找出来; B=A(z) 就可以将A中所有的NaN值剔除掉了,如果希望得到...

举个例子,如果需要将A矩阵中大于a的元素置零,那么在matlab中可以这么输入: 方法一:A(find(A>a))=0; 方法二:A(A>a)=0; 通过这个代码即可实现目标。 实例:将3*3的随机矩阵A中大于0.5的数置零。

举例代码如下: [plain] view plaincopy IDX = [1,2,3; 2,3,1; 1,2,3; 2,3,1; 1,1,1; 1,1,1]; classNo = unique(IDX,'rows'); 得到结果如下: classNo = 1 1 1 1 2 3 2 3 1

网站首页 | 网站地图
All rights reserved Powered by www.jjdf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com