a(a==NaN) does not find NaN's in matrix. What to do?

8 vues (au cours des 30 derniers jours)
Sharon
Sharon le 29 Mai 2012
I have
a=1 NaN 2 6
I want to change the NaN to 0 but
a(a==NaN)=0
does not work and gives me
a =
1.00 NaN 2.00 6.00
What did i do wrong?

Réponse acceptée

Sean de Wolski
Sean de Wolski le 29 Mai 2012
NaNs are not equal to themselves!
You could thus do either of these:
* a(isnan(a))=0; %isnan
* a(a~=a) = 0; %nans aren't equal to themselves

Plus de réponses (1)

Thomas
Thomas le 29 Mai 2012
Sharon, you are unable to replace the NaN because
NaN ~= NaN (in matlab NaN's are unequal) you can check this by
isequal(NaN,NaN)
ans =
0
to replace NaN's use the isnan function
doc isnan
For your example you need
a(isnan(a))=0
a =
1.00 0 2.00 6.00

Catégories

En savoir plus sur NaNs dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by