When using logical indexing into an array, MATLAB returns a vector output. For example, if
A = magic(3);
mask = logical([0 1 1; 0 1 1; 0 1 1]);
then
out=A(mask)
returns the output
out =
1
5
9
6
7
2But when the mask has a block format (as in this example), it is sometimes desirable to maintain that block shape in the output. So, in this case, the desired output would be
out =
1 6
5 7
9 2In other words, the output is the same shape as the logical index block.
The (first) input array A will be two-dimensional, and the (second) input array mask will be a logical that is guaranteed to have the block characteristic.