Matlab中两个5D矩阵之间的点积

时间:2019-07-27 11:55:51

标签: matlab matrix multidimensional-array matrix-multiplication

我正在尝试在Matlab中的两个3x3x3x3x3矩阵之间进行点积运算。 遵循有关多维数组的dot函数的Matlab文档之后,我期望得到这样的结果:

A=2*ones(3,3,3,3,3);

B=3*ones(3,3,3,3,3);

dot(A,B,1);

成为4D矩阵,因为A的每一列和B的每一列之间的点积将生成的矩阵缩小了一个维度。 相反,这是工作空间中的输出:

workspace

我不明白,为什么会发生?

谢谢。

1 个答案:

答案 0 :(得分:2)

答案是5维双精度,因为您已经折叠了第一维。因此,第一个维度现在的大小为1,第二到第5个维度的大小为3

您可以使用size

查看
A = 2 * ones(3,3,3,3,3);
B = 3 * ones(3,3,3,3,3);

C = dot(A,B,1);

size( C ); % = [1 3 3 3 3]