Filter löschen
Filter löschen

How to handle 'NaN' values

28 Ansichten (letzte 30 Tage)
Talat
Talat am 31 Mär. 2011
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. . .

Akzeptierte Antwort

Paulo Silva
Paulo Silva am 31 Mär. 2011
errors(isnan(errors))=0
  1 Kommentar
Jan
Jan am 31 Mär. 2011
And one vote for the correct answer reduced to the necesary minimum.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jan
Jan am 31 Mär. 2011
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 Kommentare
Talat
Talat am 31 Mär. 2011
oh Thanks guy. . .
Paulo Silva
Paulo Silva am 31 Mär. 2011
+1 vote for such detailed answer :)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by