web-dev-qa-db-ja.com

条件を満たす特定の数の行のみを選択する

私は現在、いくつかのデータ分析のためにオクターブで作業を開始し、特定のマトリックス操作にいくつかの問題があります。

次のデータマトリックスがあると仮定します。

 
 A = 
 
 1 11 22 33 
 44 13 12 33 
 1 14 33 44 
 

今、私はこのマトリックスのすべての行を削除したいと思います。次の条件。

 
 octave:6> A(:, 4)== 33 
 ans = 
 
 1 
 1 
 0 
 

そして、これらの行のみを選択するこの形式のマトリックスを取得します。

 
 A_new = 
 
 1 11 22 33 
 44 13 12 33 
 

私はこれがいくつかのループの助けを借りて可能であることを知っています。しかし、おそらくよりクリーンなソリューションがありますか?提供された標準ライブラリを使用して?それは素晴らしいだろう:]

Rについても同様の質問がいくつか投稿されています。 Rでは、条件を満たす行列の行を選択します

35
Ruun

試してください:

A = [
    1   11   22   33
    44  13   12   33
    1   14   33   44
];
idx = ( A(:,4)==33 );
A_new = A(idx,:)

これは 論理インデックス を使用しています

56
Amro