2017-06-24 7 views
0

Iは以下Aに示すように、それらに関連する要素を有するmx3マトリックスA、二列のインデックス(Idx = 3, 8, and 10)有する:私が最後all NaNsを有している行を抽出したい特定の条件を満たす行列の行のインデックスを見つけるにはどうすればよいですか?

A = [7 4 5 
    8 4 5 
    NaN NaN NaN 
    1 4 5 
    1 5 5 
    7 4 5 
    2 4 5 
    4 5 7 
    2 4 6 
    NaN NaN NaN]; 

と、これは、行列Aの任意の行に発生する可能性が

+1

私は期待していた 'A'はあなたの問題をよりよく説明するために、いくつかの' NaN'sを持っています。 'idx = idx(すべて(isnan(A(idx、:))、2))'; 'idx = idx(end)'? –

+0

この例ではすべて 'NaNs 'を持つ' A(3、:) 'だけです。私は試行のために、他のいくつかの行で 'NaNs 'を追加することができると思います。 – User1772

+2

質問をより明確に再定式化してください。何を求めているのかわかりません。あなたが理解していない振る舞いや期待することを再現する簡単な例を提供してください。 – Sheljohn

答えて

2

isnanNaN Sの位置を検索し、その全ての要素NaN Sである行を見つけるためにallを使用します。前述の条件が成り立つidxの要素を見つけ、最終的にこれらの条件を満たす最後の要素idxを取得します。

idx=idx(all(isnan(A(idx,:)),2)); %elements of idx for which A has all NaNs 
idx=idx(end);     %last element of idx for which A has all NaNs 

か、ワンライナーは、その後'last'としての方向でfindを使用したい場合:

idx=idx(find(all(isnan(A(idx,:)),2),1,'last')); 
+0

本当に私は最後の部分を逃した。どうもありがとうございます! – User1772

関連する問題