2013-01-21 8 views

答えて

23

のは、あなたの行列があるとしましょう:

A = 
    NaN 1  6 
    3  5  NaN 
    4  NaN  2 

あなたはNaN要素を見つけて、このようなisnanを使用してゼロに置き換えることができます。

A(isnan(A)) = 0; 

次に、あなたの出力は次のようになります。

A = 
    0  1  6 
    3  5  0 
    4  0  2 
5

xがあなたの行列である場合は、インデックスに配列をisnan機能を使用します。

x(isnan(x)) = 0 

次の2つのステップでそれを行う場合、それは何が起こっているか確認するために、おそらく明確です。最初に真偽値の配列を作成し、これを使って選択した要素をゼロに設定します。

bad = isnan(x); 
x(bad) = 0; 

これはかなり基本的なものです。 MATLABのオンラインチュートリアルの一部を読んで速度を上げることはうまくいくでしょう。

4

関数isnanはベクトルエド、意味:

>> A = [[1;2;NaN; 4; NaN; 8], [9;NaN;12; 14; -inf; 28 ]] 
A = 
    1  9 
    2 NaN 
    NaN 12 
    4 14 
    NaN -Inf 
    8 28 

>> A(isnan(A)) = 0 
A = 
    1  9 
    2  0 
    0 12 
    4 14 
    0 -Inf 
    8 28 
+0

あなたの答えと受け入れられたものとの間に3秒の差がありました。 – rayryeng

関連する問題