Matlab将2D矩阵变换为3D矩阵

时间:2016-09-11 13:37:27

标签: matlab matrix-transform

我有一个2D矩阵file.seek(SeekFrom::Start(0)); ,如:

A

我想将此2D矩阵转换为尺寸为2X3X4的3D矩阵 A = [ 1 2 3 4 5 6; 7 8 9 10 11 12; 1 2 3 4 5 6; 7 8 9 10 11 12;] ,如:

B

现在我要做的是首先使用B(:,:,1) = [1 2 3; 7 8 9]; B(:,:,2) = [1 2 3; 7 8 9]; B(:,:,3) = [4 5 6; 10 11 12]; B(:,:,4) = [4 5 6; 10 11 12]; 将此2D矩阵A转换为单元格类型C,然后使用mat2cell将其转换为3D矩阵cat ,但它太复杂了,因为我根本不需要这个单元格B

有些人可以直接和优雅地向我提出如何将C转换为A的任何建议吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

你可以这样做 -

[m,n] = size(A);
nr = 2; % Number of rows in o/p
nc = 3; % Number of cols in o/p
out = reshape(permute(reshape(A,nr,m/nr,nc,[]),[1,3,2,4]),nr,nc,[]);
相关问题