这似乎是我的一个非常普遍的问题:
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
当您可以使用此概念一次性完成时,我曾经从中获取第二个返回值并将其手动应用于每一列。