How to handle 'NaN' values

14 次查看(过去 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 中查找有关 Get Started with MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by