如何矢量化矢量矩阵逐元素操作?

Ale*_*lex 1 matlab

我有以下代码:

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
Run Code Online (Sandbox Code Playgroud)

问题是如何用矢量运算形式编写它?有点像B(:,:) = A(:,:).*b(:).

pad*_*ddy 7

简单使用bsxfun:

B = bsxfun(@times, A, b')
Run Code Online (Sandbox Code Playgroud)

  • 是的,`bsxfun`会完全打击你的小型嵌套for循环.=) (5认同)