簡體   English   中英

Matlab將2D矩陣轉換為3D矩陣

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM