## How to turn an 1x1x3 array to a 1x3 vector?

### Z Yerby (view profile)

on 21 Jun 2019
Latest activity Commented on by Z Yerby

### Z Yerby (view profile)

on 24 Jun 2019

Various manipulations I perform in my script create a 1x1x3 array which I then need to produce a dot product with a 1x3 vector. That's not playing together so I need to turn my 1x1x3 array into a 1x3 vector. I figure I can use vector=[array(1,1,1), array(1,1,2), array(1,1,3) ]; but I don't like how that looks and figure I could cut a line out if there was a function call that does the same thing. I assume there is one because this seems like something an existing function call would do but I cannot find it. Is there something I could use instead of vector=[array(1,1,1), array(1,1,2), array(1,1,3) ];?

Star Strider

on 21 Jun 2019
Perhaps squeeze?

### Tags

on 21 Jun 2019

on 21 Jun 2019

reshape(array,1,[]) % or squeeze() transposed

Z Yerby

### Z Yerby (view profile)

on 24 Jun 2019
I ended up using squeeze and it worked for my purposes well. Thanks.

### Bruce Elliott (view profile)

on 21 Jun 2019

Yes, there is an existing function to do that: permute().
Here's the help text:
% permute Permute array dimensions.
% B = permute(A,ORDER) rearranges the dimensions of A so that they are in
% the order specified by the vector ORDER. The resulting array has the
% same values as A but the order of the subscripts needed to access any
% particular element is rearranged as specified by ORDER. For an N-D
% array A, numel(ORDER)>=ndims(A). All the elements of ORDER must be
% unique.
%
% permute and IPERMUTE are a generalization of transpose (.')
% for N-D arrays.
%
% Example:
% a = rand(1,2,3,4);
% size(permute(a,[3 2 1 4])) % now it's 3-by-2-by-1-by-4.
%