I have a 10x6x5 matrix, I want to convert it into 6x50 matrix. How to do this?

1 次查看(过去 30 天)
I want to keep second dimension(6 elements) data in the each column vector of the new 2d matrix and there would be 50 (10*5) such columns.

采纳的回答

KSSV
KSSV 2018-7-11
A = rand(10,6,5) ;
C = permute(A,[1 3 2]);
C = reshape(C,[],size(A,2),1) ;

更多回答(2 个)

James Tursa
James Tursa 2018-7-11
Either this:
A = your 10x6x5 array
result = reshape(permute(A,[2 1 3]),size(A,2),[]);
Or this:
A = your 10x6x5 array
result = reshape(permute(A,[2 3 1]),size(A,2),[]);
Depending on how you want the column data ordered.

Sri Harish G
Sri Harish G 2018-7-11
If you have a matrix A of size 10x6x5 you can convert it to a matrix of dimensions 6x50 by using
reshape(A,[6,50])
For Information regarding how the elements will be arranged in this matrix, please refer to the documentation and scroll down to "Reshaping Multidimensional Arrays"
https://www.mathworks.com/help/matlab/math/multidimensional-arrays.html

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by