這似乎是我的一個非常普遍的問題:如何在MATLAB中使用數組掩碼縮小矩陣?
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
數字索引。
我用來從sort
採取第二返回值,並手動將其應用到每一列時,你可以使用這個概念做一杆。
謝謝,我知道這是一些簡單的類似。從來沒有考慮過使用:帶面具的概念。我只使用了一個索引。 – Pyrolistical 2010-04-29 18:06:17