2014-03-04 26 views
1
>> a = [a1 a2] 

a = 

    2.0000 + 0.0000i -1.0000 + 1.7321i 

>> b = [b1 b2] 

b = 

    2.0000 + 0.0000i -1.0000 - 1.7321i 

>> dot(a,b) 

ans = 

    2.0000 + 3.4641i 

>> a1*b1+a2*b2 

ans = 

    8 

爲什麼我得到這樣一個奇怪的值來獲取兩個複數值向量的點積?我非常肯定答案應該是8,但我仍然得到2.0000 + 3.4641i如上所示。難道我做錯了什麼?複數值向量的MatLab點積不能正常工作

回答

1

從文檔,

點(A,B)是相同的A'* B。

所以,如果你嘗試:

a = [2.0000 + 0.0000i -1.0000 + 1.7321i] 
b = [2.0000 + 0.0000i -1.0000 - 1.7321i] 
dot(conj(a),b) 

您將獲得:

>> dot(conj(a),b) 

ans = 

    8.0002 
+0

但犯規的文件說,如果他們是列向量,這只是真的嗎? –

+0

另外,我認爲a'表示a的轉置,而不是它的共軛。 –

+0

對不起,它看起來需要轉置和共軛。對於那個很抱歉。感謝您的迴應 –