How to turn an 1x1x3 array to a 1x3 vector?
조회 수: 65 (최근 30일)
이전 댓글 표시
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) ];?
채택된 답변
추가 답변 (1개)
Bruce Elliott
2019년 6월 21일
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.
%
% See also ipermute, circshift, size.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!