我有一个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
的任何建议吗?
谢谢!
答案 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,[]);