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

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

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

你有问题举例么?我举一个,你看是不是你的目的 向量 a=[1 2 3 4] 随机矩阵3行4列 A=rand(3,4) 将A的第二行换为a A(2,:)=a

a=[1 2 3 4 5 4 3 2 1]; a(3)=[]; a=[1 2 3 4 5 4 3 2 1]; a(a==3)=[]; 我不知道你说的是哪种情况,第一个是把指定位置的元素删掉,第二个是把指定大小的元素删掉! Locate=find(a>122) %a是存储数据的数组名,find是找到大于122的数的位置 a(Locat...

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'%显示...

可以采用unique()函数进行操作,代码如下:>> x=[1 1 1 2 2 2 3 3 3 3 3 ] x = 1 1 1 2 2 2 3 3 3 3 3 >> b=unique(x) b = 1 2 3 该方法快捷方便,但是精度较低。 扩展资料: matlab的unique函数,格式是“b = unique (a)”功能是取集合a的不重复...

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

两种方法: 1,将所有要删除的行标顺序排列成向量V,然后用命令 "矩阵变量名"(V,:)=[];%可删除与"矩阵变量名"对应的矩阵中的指定行(通过V指定),并改变原矩阵维数 2,将所有要保留的行标顺序排列成向量V,然后用命令 "矩阵变量名"="矩阵变量名...

>> a=[1,2,1,3,0,4,0,9,0 5] a = 1 2 1 3 0 4 0 9 0 5 >> a(find(a==0))=[] a = 1 2 1 3 4 9 5 >>

实现手段姑且不论,你的要求就有问题:如果【去除为0的项】,也就是说矩阵的元素减少了,又怎么可能【保留矩阵大小不变】?

(1)如果是一维的,a(a==0) = [] 就能解决问题如果是多维的,a(a==0) = [] 会把a变成一维的。a =4 4 4 2 24 0 3 2 22 1 2 4 33 0 5 4 41 0 0 1 4>> a(a==0)=[]a =Columns 1 through 204 4 2 3 1 4 1 4 3 2 5 2 2 4 4 1 2 2 3 4Column 214(2) 如...

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