llgd.net
当前位置:首页 >> mAtlAB中,如何把一个向量中的NAN去掉? >>

mAtlAB中,如何把一个向量中的NAN去掉?

向量a是否存在NaN,用any(isnan(a)): >> any(isnan([1 nan])) ans = 1 >> any(isnan([1 2])) ans = 0

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

isnan函数可以找到矩阵中nan的位置,定位好nan的位置后直接对其进行赋值就可以了(不可赋空值)。 例: A=[1,NaN;3,4]; ind_nan=isnan(A); A(ind_nan)=2;

比如矩阵x中存在NaN [m,n]=find(isnan(x)) % 找出NaN数据位置 x(m,:)=[] %删除含有NaN的行,x(:,n)=[]可以删除列

这个问题问的有点问题。如果是一维的,a(a==0)=[]就能解决问题如果是多维的,a(a==0)=[]会把a变成一维的,然后结果类似于上面的结果。原因是每行每列中的0的个数不同,无法保持多维的样子,只能拉长了当成一维处理。a=4442240322212433054410014...

按照你所说A,B有0元素 所以C有0元素(0除以非0)或者inf元素(非零除以0),或者nan元素(0除以0) 要在排序的时候忽略他们,只要将他们改写为一定排不上前100的数就可以了 要找最大的元素的时候,可以将对应的数改为-inf,那么这些数肯定排在...

我举个例子 A = [1 2 3 2 3 4 5]; 想让A中的=2的元素变成NAN ind = find(A == 2); % 找到索引 A(ind) = nan; %变成NAN 也可以直接写A(A==2) = nan; 此外,如果想找A中的NAN就是 isnan(A); 分别试试吧 :)

用find函数和isnan函数,找到nan的位置然后去除这些值就可以了。

采用下面的代码进行使用。 向量a是否存在NaN,用any(isnan(a)): >> any(isnan([1 nan])) ans = 1 >> any(isnan([1 2])) ans = 0

打开 MATLAB Command window中输入 help NaN,可以看到 NaN(Not-a-Number) 的意思是“不是一个数字”。 NaN is the IEEE arithmetic representation for Not-a-Number. A NaN is obtained as a result of mathematically undefined operations l...

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