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

8 ビュー (過去 30 日間)
Sharon
Sharon 2012 年 5 月 29 日
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?

採用された回答

Sean de Wolski
Sean de Wolski 2012 年 5 月 29 日
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
  1 件のコメント
Sharon
Sharon 2012 年 5 月 29 日
Thanks..

サインインしてコメントする。

その他の回答 (1 件)

Thomas
Thomas 2012 年 5 月 29 日
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
  1 件のコメント
Sharon
Sharon 2012 年 5 月 29 日
Thanks..

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeNaNs についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by