1

我有以下代码:

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(:)

4

2 回答 2

7

简单用途bsxfun

B = bsxfun(@times, A, b')
于 2013-06-06T04:19:26.027 回答
0

你也可以试试:

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

在这里,首先您生成N2重复版本的向量bA以元素方式将其相乘

于 2013-06-06T04:57:41.877 回答