簡體   English   中英

在Matlab中對3D矩陣的特定維度求和

[英]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,您將必須使用squeezereshape

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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