2013-02-08 87 views
2
a = [1, 2, 3]; 
b = [3, 2, 1]; 
c = a * b; 

产生如何乘以两行或两列?

error: operator *: nonconformant arguments (op1 is 1x3, op2 is 1x3)

为什么不能乘同一尺寸的这两行? 我不应该for循环这一跑,但我不知道的另一种方式......

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

+0

我会很感激,如果有人会删除该倒票。对于不熟悉基于矩阵的编程的人来说,这并不是什么明显的东西,也不应期望我将掌握正确的术语。我不认为我的逻辑在这里是错误的,尽管它可能不合适。 – jml

回答

2

我现在有一个.* operator看到。我不知道该在文档中找到该文档,并且它符合我的要求。

+1

哈哈我喜欢这个网站。我正在寻找同样的事情。接受的答案是错误的,正确的答案是投票。做好StackOverflow。 – justinhj

+0

前段时间我解决了这个问题,谢谢。 :) – jml

3

你做了2行,它们不能相乘。

矩阵乘法的一般形式是“行点列”,这意味着取每行与每列的点积。在你的情况下,你有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

+0

ans我预计'c'的收益是[3,4,3],一个逐元素的乘法。 – jml