我正在尝试在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的每一列之间的点积将生成的矩阵缩小了一个维度。 相反,这是工作空间中的输出:
我不明白,为什么会发生?
谢谢。
答案 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]