フィルターのクリア

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

7 ビュー (過去 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 ExchangeMatrix Indexing についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by