通过水平堆叠矩阵将3维数组重新整形为2

时间:2017-09-12 21:41:16

标签: matlab reshape

我有4x3x2阵列:

A(:,:,1) = 
 1 10 100
 2 20 200
 3 30 300 
 4 40 400  

A(:,:,2) = 
 5 50 500
 6 60 600  
 7 70 700
 8 80 800   

我想将其重塑为尺寸为8x3的B矩阵,保留每个矩阵的结构:

 B = 
 1 10 100
 2 20 200
 3 30 300 
 4 40 400
 5 50 500
 6 60 600  
 7 70 700
 8 80 800  

知道如何以简单明了的方式做到这一点吗?

1 个答案:

答案 0 :(得分:1)

here

方法1:置换和重塑

B = reshape(permute(A, [2 1 3]), size(A, 2), [])'

方法2:细胞 - >基质

B = num2cell(A, [1 2]);
B = vertcat(B{:})