2013-02-08 137 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