How to handle 'NaN' values

16 ビュー (過去 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 Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by