[英]Summing over specific dimension of a 3D matrix in Matlab
我在Matlab中有一個大小為NxMxD的3D矩陣,我需要對特定尺寸求和:
x = rand(5,3,2);
sum1 = sum(x,1);
sum2 = sum(x,2);
sum3 = sum(x,3);
我顯然希望在3種情況下,結果將是2維矩陣或1維長度為1的3D矩陣。不幸的是,情況並非如此。
sum1和sum2是3D矩陣,其維數的長度為1,而sum3是2D矩陣。
我希望能夠以類似於計算sum3的方式獲取sum1和sum2作為2D矩陣。 是否可以僅使用sum或唯一的方法是進一步使用,例如squeeze()函數)
正如@Tommaso所說,第三個輸出是5x3x1,盡管當您要求它的大小時,MATLAB會切掉尾隨的。
MATLAB無法在其他地方自動執行此操作,因為這會改變矩陣/張量,請記住,MATLAB是“主要”用於矩陣。
執行矩陣運算時,1xn向量與nx1向量不同。
Tl; dr,您將必須使用squeeze
或reshape
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.