Indexing and turning into column vector

2 views (last 30 days)
Is there a quick way to index into an array and then make it a column vector without reshaping? See below for example:
a = ones(5, 4, 3, 2)
aR = reshape(a(:, :, :, 2), 1, [])
%Any alternatives?
%a(:, :, :, 2)(:), etc
Thanks in advance

Accepted Answer

James Tursa
James Tursa on 23 Jul 2023
Edited: James Tursa on 23 Jul 2023
Not really. It's going to be a two-step process no matter how you do it (without resorting to a mex routine, which isn't worth it IMO). The indexing you do above is a deep data copy, but the reshape is very quick and is not a deep copy, so I wouldn't worry about it. Just do what you are currently doing. Note that if you want a column vector output you should be doing reshape(a(:, :, :, 2), [], 1).

More Answers (0)


Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!