[英]Matlab transform 2D matrix to 3D matrix
我有一個2D矩陣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矩陣轉換為大小為2X3X4的3D矩陣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];
現在我要做的是先使用mat2cell
將2D矩陣A
轉換為單元格C
,然后使用cat
將其轉換為3D矩陣B
,但這太復雜了,因為我根本不需要此單元格C
有人可以給我任何建議,如何將A
直接優雅地轉換為B
嗎?
謝謝!
你可以做這樣的事情-
[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,[]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.