我有以下代码:
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))';
在这里,首先生成向量b
的N2
重复版本,并以元素方式将其与A
相乘