繁体   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