8
给定一个矩阵工作: -为什么更换矩阵NaN的不包括K(K == NAN)= SomeNumber,其中k为矩阵操作
k = [1 2 3 ;
4 5 6 ;
7 8 NaN];
如果我想更换号码,说2,用0,我可以用这个:k(k==2) = 0
。它工作正常,并给出了以下预期的答案: -
k =
1 0 3
4 5 6
7 8 NaN
但为什么这个不是,如果我试图取代NaN
工作,即k(k==NaN) = 0
给出了这样的:
k =
1 2 3
4 5 6
7 8 NaN
虽然我能够实现预期结果使用:k(isnan(k))=0
。但为什么第一种方法不起作用?
另外,作为由所提到的链路,'的NaN〜= NaN'给出'1'这似乎乍一看怪异!!但现在它是有道理的。谢谢! –
请参阅'NaN'文档的[更多关于](http://www.mathworks.com/help/matlab/ref/nan.html#moreabout)部分。 – excaza
经验教训。 'NaN == NaN'实现未定义。总是使用'isnan'来检查'NaN'。 – rayryeng