使用MATLAB进行矩阵乘法

时间:2011-02-17 21:09:02

标签: matlab

如果我有以下矩阵:

a=[10   1   0   1   1
   50   1   0   0   0
   60   0   0   0   1]

如何将矩阵[10 50 60]'中的第一列乘以向量乘法到矩阵的其余部分并得到以下结果:

b=[10  10  0  10  10
   50  50  0   0   0
   60  0   0   0   60]

3 个答案:

答案 0 :(得分:5)

为此,bsxfun就是您所需要的:

b = [a(:,1) bsxfun(@times,a(:,2:end),a(:,1))]

希望这有帮助,

一个。

答案 1 :(得分:3)

如果你真的想把它框架化为矩阵乘法,比如:

b = [a(:,1), diag(a(:,1))*a(:,2:end)]

应该可以工作(因为我已经做了任何matlab,但是已经有一段时间了。)

答案 2 :(得分:2)

firstcol = a(:,1);
b = [firstcol, a(:,2:end) .* repmat(firstcol,1,size(a,2)-1)];

(这实际上不是我们通常称之为矢量乘法或矩阵乘法的东西。)