这似乎是我的一个非常普遍的问题:如何在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