MATLAB: Is the result of the logical indexing smaller than the original vector

indexinglogical?MATLABsize;

I have a vector "x" and a logical indexing vector "idx", which is the same size as "x". However, when I index into "x" using "idx", the result is a different size.
Why does this happen?

Best Answer

Logical indexing in MATLAB only returns values for the locations where indexing vector is 1, any other values from the original vector are ignored.
To acquire a result of the same size of "x" and "idx", you can consider using the "element-wise multiplication" operator ( .* ), or the "logical and" operator ( & ). For more information, please refer to the following documentation page on Matrix Indexing:
https://www.mathworks.com/help/matlab/math/matrix-indexing.html#bq7egb6-1