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

时间:2013-06-06 04:12:28

标签: 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

问题是如何以矢量运算形式编写它?类似于B(:,:) = A(:,:).*b(:)

2 个答案:

答案 0 :(得分:7)

简单使用bsxfun

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

答案 1 :(得分:0)

您也可以尝试:

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

此处,您首先生成N2重复版本的向量b并将其与A以元素方式相乘