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

Dot product between two 5D matrices in Matlab

我正在尝试在 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的每一列之间的点积将所得矩阵减少了一个维度。 相反,这是工作区中的输出:

我无法理解,为什么会这样?

提前致谢。

答案是 5 维加倍,因为您已经折叠了第一个维度。因此,第一个维度现在的大小为 1,第 2-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]