0

我有一个二维矩阵A,如:

  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;]

我想将此 2D 矩阵转换为B大小为 2X3X4 的 3D 矩阵,例如:

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 Matrix 转换A为 cell 类型Cmat2cell然后使用cat它来转换它 3D Matrix B,但这太复杂了,因为我根本不需要这个 cell C

有人可以给我任何建议,我可以如何直接优雅地转变A为?B

谢谢!

4

1 回答 1

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,[]);
于 2016-09-11T14:01:51.110 回答