如何对向量矩阵逐元素运算进行矢量化



我有以下代码:

A = rand(N1,N2);
b = rand(1,N1);
B = zeros(N1,N2);
for i=1:N1
   for j=1:N2
      B(i,j) = A(i,j)*b(i);
   end   
end

问题是如何把它写成向量运算形式?比如B(:,:) = A(:,:).*b(:)

bsxfun简例:

B = bsxfun(@times, A, b')

您也可以尝试:

B = A*.(repmat(b,N2,1))';

在这里,首先生成向量bN2重复版本,并以元素方式将其与A相乘

最新更新