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]
我正在尝试在 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]