Indexing and turning into column vector
    3 views (last 30 days)
  
       Show older comments
    
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)
%Works
aR = reshape(a(:, :, :, 2), 1, [])
%Any alternatives?
%a(:, :, :, 2)(:), etc
Thanks in advance
0 Comments
Accepted Answer
  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).
0 Comments
More Answers (0)
See Also
Categories
				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!
