How to handle 'NaN' values

34 次查看(过去 30 天)
Talat
Talat 2011-3-31
em try to write code to find 'Interpolation error' but in Error metrix there occuring NaN at many place, even i have converted them in 'double()' now i want NaN value would replace by '0'or by its right value, Instead of NaN. plz help me . em trying to fix it bt it doesn't work.
{double(errors);
for i=1:1:size(errors, 1) for j=1:1:size(errors, 2) if errors(i, j)== 'NaN' errors(i, j)=0; else errors(i, j)=(errors(i, j)); end} end end this code is not working... i want not to occur ant NaN value during code processing. . . how do i write a code to avoide from such unwanted values. . .

采纳的回答

Paulo Silva
Paulo Silva 2011-3-31
errors(isnan(errors))=0
  1 个评论
Jan
Jan 2011-3-31
And one vote for the correct answer reduced to the necesary minimum.

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2011-3-31
This cannot work:
if errors(i, j)== 'NaN'
"error(i, j)" is a scalar DOUBLE, 'NaN' is a [1 x 3] CHAR vector, also known as "string". Even this would fail:
if errors(i, j) == NaN
because IEEE conventions state, that a comparison to NaN replies FALSE ever:
1 < NaN % >> 0
1 == NaN % >> 0
1 > NaN % >> 0
NaN == NaN % >> 0
Therefore isnan() must be used as shown in Paulo's answer.
  2 个评论
Talat
Talat 2011-3-31
oh Thanks guy. . .
Paulo Silva
Paulo Silva 2011-3-31
+1 vote for such detailed answer :)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by