[英]Resizing a 3D matrix into a 2D matrix in MATLAB
我有以下大小為2*2*3
的三維矩陣X
:
X = zeros(2, 2, 3);
X(:,:,1) = [1 2; 3 4];
X(:,:,2) = [5 6; 7 8];
X(:,:,3) = [9 10; 11 12];
我想自動將X
重塑為大小為6*2
的二維矩陣,這樣我應該獲得:
X_reshaped = [1 2; 3 4; 5 6; 7 8; 9 10; 11 12]
X_reshaped = [1 2; 3 4; 5 6; 7 8; 9 10; 11 12]
。
在 MATLAB 中,我正在嘗試編寫X_reshaped = reshape(X, [size(X,1)*size(X,3), size(X,2)])
,但這並沒有給我上面想要的X_reshaped
.
任何幫助將不勝感激!
使用 permute permute()
function 將允許重新調整數組的形狀,以便元素沿第一個維度成對存儲。 默認情況下,這允許reshape()
function 相應地訪問這些對。
X = zeros(2, 2, 3);
X(:,:,1) = [1 2; 3 4];
X(:,:,2) = [5 6; 7 8];
X(:,:,3) = [9 10; 11 12];
reshape(permute(X,[1 3 2]),[6 2])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.