将矩阵中的每列乘以向量中的相应行

时间:2013-06-12 08:19:34

标签: matlab matrix multiplication

我有一个6231x16825矩阵H和一个16825x1列向量W

例如,如果W = [2; 3; 3 ...]'H = [1 2 3; 4 5 6 ...],我需要获取:

prod = [1*2 2*3 3*3; 4*2 5*3 6*3]

怎么做?感谢

1 个答案:

答案 0 :(得分:9)

有很多方法可以选择适合你的方式:

  • 使用bsxfun

    res = bsxfun(@times, H, W(:).');
    
  • 矩阵乘法:

    res = diag(W) * H;
    
  • 循环:

     res = nan(size(H));
     for k = 1:size(H,2)
         res(:, k)= W .* H(:, k);
     end
    
相关问题