我有以下代码:
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(:).
简单使用bsxfun:
B = bsxfun(@times, A, b')
Run Code Online (Sandbox Code Playgroud)