MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today**New to MATLAB?**

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 2

But 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 2

In 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.

42 correct solutions
31 incorrect solutions

Last solution submitted on Mar 13, 2015

2 Comments