用MATLAB实现矩阵乘法
如果我有以下矩阵:用MATLAB实现矩阵乘法,matlab,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] (但这并不是我们通常所说的向量乘法或矩阵乘法。) (这并不是我们通常所说的向量乘法或矩阵乘法。)如果你真的想把它设为矩阵乘
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]
(但这并不是我们通常所说的向量乘法或矩阵乘法。)
(这并不是我们通常所说的向量乘法或矩阵乘法。)如果你真的想把它设为矩阵乘法,比如:
b = [a(:,1), diag(a(:,1))*a(:,2:end)]
应该可以工作(虽然我已经有一段时间没有做任何matlab了)。如果你真的想把它框成矩阵乘法,比如:
b = [a(:,1), diag(a(:,1))*a(:,2:end)]
应该可以工作(虽然我已经有一段时间没有做任何matlab了)。为此,
bsxfun
是您需要的:
b = [a(:,1) bsxfun(@times,a(:,2:end),a(:,1))]
希望这有帮助
A.为此,
bsxfun
是您需要的:
b = [a(:,1) bsxfun(@times,a(:,2:end),a(:,1))]
希望这有帮助
A.你的答案似乎是最直截了当的,与线性代数也有着紧密的联系。我草草浏览了一下答案,如果我第一眼就意识到你的答案的优越性,我甚至不会发布我自己的答案。你的答案似乎是最直截了当的,与线性代数也有着牢固的联系。我草草浏览了一下答案,如果我第一眼就意识到你的答案的优越性,我甚至不会发布我自己的答案。就我而言,这应该是公认的答案+1就我而言,这应该是公认的答案+1