Matlab NAN如何去掉

如题所述

% NaN returns the IEEE arithmetic representation for Not-a-Number (NaN). 

% These result from operations which have undefined numerical results.

% NaN('double') is the same as NaN with no inputs.

% NaN('single') is the single precision representation of NaN.

% NaN(n) is an n-by-n matrix of NaNs.

% NaN(m,n) or NaN([m,n]) is an m-by-n matrix of NaNs.

% NaN(m,n,p,...) or NaN([m,n,p,...]) is an m-by-n-by-p-by-... array of NaNs.


% 方法一 将非数置换为空(删除),对维数有影响

A = [1 2 nan 4 7 nan];
A(isnan(A)) = []

A =

     1     2     4     7

     

% 方法二 将非数用常量替代,对维数不影响

B = [1 2 nan; 4 nan 5; 7 8 9]
B(isnan(B)) = 0     % ç”¨ 0 æ›¿æ¢ nan

B =

     1     2   NaN

     4   NaN     5

     7     8     9

B =

     1     2     0

     4     0     5

     7     8     9

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-08-20
>> a = [1 nan 2];
>> b = find(~isnan(a));
>> res = a(b)

一招删除数组中所有NaN缺失项-每天一个MATLAB小技巧(32)
1. **rmmissing(A)**:此命令从数组或表A中删除所有包含NaN的元素。当A为向量时,它会移除所有出现的NaN值。对于矩阵或表而言,它会移除包含任何NaN值的行。例如,如果有一个数组A = [1, NaN, 3, NaN, 5],那么使用rmmissing(A)后,结果将是 [1, 3, 5]。2. **rmmissing(A, dim)**...

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

Matlab出现nan怎么处理
1)你的程序里出现0作为分母的运算,这个时候可以考虑把被除矩阵整体加一个无限小量,例如1e-10。这样可以消除0作分母的现象。2)如果上面这个做法不管用,一般就是你自己的算法和编程的问题了,导致结果不收敛,发散。多次迭代后无穷大,超过了matlab允许的数值范围。这个时候你必须去仔细检查你的程序了。

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

matlab 出现nan怎么办
因为你的表达式中的变量,如PY、PZ、FS中的值为o或空格。所以会出现NaN。解决的方法可以用if条件语句,当PY、PZ、FS为零时,可以人为加个辅助量0.00001.。

matlab用interp2方法进行插值消除nan的问题
因为出现nan的点是随机分布的,不好用interp2插值 用griddata插值是可以解决问题的 b =[2 NaN NaN 1 NaN 2 1 1 2 NaN 1 NaN];s=size(b);ind=find(~isnan(b));[i j]=ind2sub(s,ind);v=b(ind);[ii jj]=ndgrid(1:s(1),1:s(2));ib=griddata(i,...

Matlab中,怎样能去除向量或矩阵中的NaN和0元素,但又不改变其它元素的索...
要找最小的元素的时候,可以将对应的数给为inf,那么这些数肯定排在最大 数据足够多的时候,前100个数肯定就没有它们的身影 例如在C中忽略nan,找前100个最大的数 D=C;D(isnan(D))=-inf;sD=sort(D,'descend'); %降序排序 Result =sD(1:100);不用用到索引 要忽略某些值,只要让那些...

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

matlab 数据里面有NaN,如何进行归一化
最直接的办法就是归一化的时候用if语句把非数踢掉~

matlab中出现nan怎么回事
1. 计算过程中的问题:当执行某些数学运算时,如果涉及到了无穷大或无穷小的值,或者零作为对数函数的分母等情况,MATLAB会返回NaN。因为这些情况下,计算结果在数学上是没有定义的。例如,计算无穷除以无穷的结果是不确定的,因此返回NaN。2. 数据输入问题:在处理数据时,如果数据本身包含NaN值,那么在...

相似回答