【问题标题】:How to multiply two rows or columns?如何将两行或两列相乘?
【发布时间】:2013-02-08 01:59:23
【问题描述】:
a = [1, 2, 3];
b = [3, 2, 1];
c = a * b;

产量

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

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

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

【问题讨论】:

  • 如果有人会删除该反对票,我将不胜感激。对于不熟悉基于矩阵的编程的人来说,这不是显而易见的东西,也不应该期望我手头有正确的术语。我不认为我的逻辑在这里有问题,尽管它可能是 n00bish。

标签: octave


【解决方案1】:

你做了两行,不能相乘。

矩阵乘法的一般形式是“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

【讨论】:

  • 我期望 'c' 产生的答案是 [3,4,3],逐个元素相乘。
【解决方案2】:

我现在看到有一个.* operator。我不知道在文档中的哪里可以找到它,它可以满足我的需求。

【讨论】:

  • 哈哈我喜欢这个网站。我一直在寻找同样的东西。接受的答案是错误的,正确的答案被否决。干得好 StackOverflow。
猜你喜欢
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多