如何将两行或两列相乘?

时间:2013-02-08 01:59:24

标签: octave

a = [1, 2, 3];
b = [3, 2, 1];
c = a * b;

产量

  

错误:运算符*:不一致的参数(op1是1x3,op2是1x3)

为什么我不能将这两个相同大小的行相乘? 我不应该为此运行for循环,但我不知道另一种方式......

我看到了section 1.2.3 here,这表明(至少对我来说)我应该能够做到

2 个答案:

答案 0 :(得分:4)

你做了两行,不能相乘。

矩阵乘法的一般形式是“ Row-Dot-Column ”,这意味着将每行的点积与每列相乘。在你的情况下,你有1行,但有3列(这不起作用!)。

a = [1, 2, 3];
b = [3, 2, 1];
c = a' * b;
  

ans =

 3     2     1
 6     4     2
 9     6     3

enter image description here

答案 1 :(得分:2)

我现在看到有一个.* operator。我不知道在文档中哪里可以找到它,它做了我想要的。