2016-04-03 19 views
2

MATLABでブール演算を使用していくつかの要素を選択しようとしています。Matlabでブール値行列を使用して要素を選択する方法

A([true true false; true true false])を使用している場合、私はA = [1 2 3; 4 5 6; 7 8 9]

A = 

1  2  3 
4  5  6 
7  8  9 

私が手にしている:

1 
4 
7 
2 

は、それは、誰もが何が起こっているか知っているか?:

1 
4 
2 
5 

ことになっていませんか?

答えて

0

logical indexingのマニュアルについては、this exampleを参照してください。それが必要として、それははっきりと説明できないかもしれないが、あなたは、より少ない要素を持つ論理インデックスを指定した場合、その後のインデックス付き行列(A)をインデックス行列は、そのようなことを直線化されている:

A = [1 2 3; 4 5 6; 7 8 9]; 
idx1 = [true true false; true true false]; 
A(idx1) 

は同等です

idx1 = [true true false; true true false]; 
A(idx1(:)) 

つまり、インデックスマトリックス(idx1)要素は、列単位で出力を指定します。

idx2 = [true false true; true true false]; 
A(idx2) 

か、あなたのオリジナルのインデックス配列変換することができます:あなたはあなたが得る必要があるのに何をしたい場合は

、あなたが使用することができます

idx1 = [true true false; true true false]; 
idx2 = reshape(idx1.',2,3); 
A(idx2) 

またはちょうどに使用します。

idx3 = [true true false true true].'; 
A(idx3) 
関連する問題