これは私の非常に一般的な問題のようです:
data = [1 2 3; 4 5 6];
mask = [true false true];
mask = repmat(mask, 2, 1);
data(mask) ==> [1; 4; 3; 6]
私が欲しかったのは[1 3; 4 6]
。
はい、私はreshape
それを適切なサイズにすることができますが、それは間違った方法のようです。もっと良い方法はありますか?data(mask)
実際に長方形であるのに、なぜ行列を返さないのですか?一般的なケースではそうではないかもしれませんが、私の場合、元のマスクは配列であるため、常にそうなります。
当然の結果
回答ありがとうございます。これは、、、、などの数値インデックスを返すものでも機能することを指摘したいとismember
思いsort
ますunique
。
以前は、この概念を使用して1回のショットで実行できる場合に、から2番目の戻り値を取得しsort
、それをすべての列に手動で適用していました。