假设我有2个向量,并且想做一个外积。我可以使用:
A=x*y';
或者我可以这样使用
bsxfun
:bsxfun(@times,x,y')
但是我想批量生产外部产品。我有2个矩阵,每个矩阵都包含
p
个向量:n=1000; p=6;
A=rand(n,p);
D=rand(n,p);
我想计算所有外部乘积,并对结果求和,如下所示:
AA=zeros(n,n);
for j=1:p
AA = AA + A(:,j) * D(:,j).';
end
我想更有效地做到这一点,但我不知道如何做。
最佳答案
只需将两个矩阵相乘即可:
n=1000; p=6;
A=rand(n,p);
D=rand(n,p);
way1=zeros(n,n);
for j=1:p
way1 = way1 + A(:,j) * D(:,j).';
end
way2 = A * D.';
any(way1(:) ~= way2(:))