【问题标题】:How do I multiply matrix with vector and get result in matrix?如何将矩阵与向量相乘并得到矩阵的结果?
【发布时间】:2019-02-13 17:47:15
【问题描述】:

假设我有一个矩阵:

A = [ a, b, c;
      d, e, f ];

还有一个向量:

b = [ x;
      y;
      z ];

我想要的是结果矩阵:

C = [ a*x, b*y, c*z;
      d*x, e*y, f*z ];

我该怎么做? 本质上,我想将矩阵(维度:mxn)与向量(nx1)相乘并得到结果矩阵mxn。

根据 cmets 的要求(使用八度版本3.8.0):

octave> A = [ 1,2,3;4,5,6]; B=[10;20;30];
octave> A*B
ans =

   140
   320

octave> A.*B
error: product: nonconformant arguments (op1 is 2x3, op2 is 3x1)
octave> bsxfun(@times, A, B)
error: bsxfun: nonconformant dimensions: 2x3 and 3x1

【问题讨论】:

  • 你试过将它们相乘吗?
  • b 不是标量。它是您喜欢的矩阵或列向量
  • @matzeri 修正了错字。
  • 请参阅.*documentation。如果您使用的是 MATLAB ≤ R2016a,则需要 bsxfun。在 Octave 和 MATLAB ≥ R2016b 中,可以直接使用.*(调整尺寸后)
  • ' 是复共轭转置。您应该在这里使用简单的转置.',因为它是您打算采用的转置。安迪已经发布了。你可以继续。

标签: matlab octave


【解决方案1】:
A = [ 1,2,3;4,5,6];
B = [10;100;1000];
A.*B.'
ans =

     10    200   3000
     40    500   6000

【讨论】:

  • 感谢您的回答。在我对这个问题发表评论之前,我没有注意到你的回答。在将您的答案标记为已接受答案之前,我正在等待 @SardarUsama 的输入。
猜你喜欢
  • 1970-01-01
  • 2021-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 2019-10-13
  • 2015-01-24
相关资源
最近更新 更多