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