在Matlab中求和三维矩阵的特定维数

时间:2018-05-05 12:17:57

标签: matlab multidimensional-array sum

我在Matlab中有一个大小为NxMxD的3D矩阵,我需要总结一个特定的维度:

x = rand(5,3,2);
sum1 = sum(x,1);
sum2 = sum(x,2);
sum3 = sum(x,3);

我显然希望在3种情况下,结果可能是2D矩阵或1维长度为1的3D矩阵。但遗憾的是并非如此。

sum1和sum2是3D矩阵,其中总和的长度为1,而sum3是2D矩阵。

我希望能够以类似于计算sum3的方式将sum1和sum2作为2D矩阵。是否可以使用sum或唯一的方法是进一步使用例如squeeze()函数)

1 个答案:

答案 0 :(得分:3)

正如@Tommaso所说,第三个输出是5x3x1,但是当你要求它的大小时,MATLAB会减少尾随的数量。

MATLAB,不能在其他地方自动执行此操作,因为这会改变矩阵/张量,请记住MATLAB“主要”用于矩阵。

执行矩阵运算时,1xn向量与nx1向量不同。

Tl;博士,您必须使用squeezereshape