**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受答复。
这个问题似乎不是关于在help center定义的范围内编程。
6天前关闭
这篇文章是编辑并提交审查6天前.
Improve this question
对于这些示例,使用pagemtimes
似乎不考虑矩阵乘法
A = rand(10, 10, 3, 3);
B = rand(10, 10, 1, 3);
C = pagemtimes(B, A);
size(C)
C的大小的预期答案是[10,10,1,3]。我得到的答案是[10,10,3,3]。
同样地,
A = rand(10, 10, 3, 3);
B = rand(10, 10, 3, 1);
C = pagemtimes(A, B);
size(C)
C的大小的预期答案是[10,10,3,1]。我得到的答案是[10,10,3,3]。
这个问题是由于对文件的误解而提出的。函数pagemtimes
的行为准确。在下面的代码中可以看到一个快速的解释:
A = rand(10, 10, 3, 3);
B = rand(10, 10, 1, 3);
A = permute(A,[3 4 1 2]);
B = permute(B,[3 4 1 2]);
C = pagemtimes(B, A);
size(C)
1条答案
按热度按时间j8ag8udp1#
1.- X和Y应该具有相同的大小
从
https://uk.mathworks.com/help/matlab/ref/pagemtimes.html?s_tid=srchtitle_pagemtimes_1
报价
报价结束
这并不是说
A
和B
必须具有相同的大小,但当A
和B
的大小不相等时,MATLAB将做一些猜测工作,使所有矩阵大小完全相同的值,然后进行逐页矩阵乘法,即矩阵维数>3,则是逐片乘法。2.-尝试填充零
在允许MATLAB用任何东西来膨胀较小的矩阵之前,为什么不提前在较小的矩阵中填充零,这样两个
pagemtimes
输入矩阵A
B
都具有最大矩阵的维度,在这种情况下