【问题标题】:MatLab dot product of complex valued vectors not working correctly复值向量的 MatLab 点积无法正常工作
【发布时间】:2014-03-04 21:55:30
【问题描述】:
>> 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 math complex-numbers dot-product


    【解决方案1】:

    从文档中,

    dot(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
    

    【讨论】:

    • 但是文档不是说只有当它们是列向量时才是正确的?
    • 另外,我认为 a' 表示 a 的转置,而不是它的共轭。
    • 对不起,它看起来需要转置 AND 共轭。对于那个很抱歉。感谢您的回复
    • 对于复向量空间的标量积来说是正确的和预期的。请参见厄米特标量积或倍半线性双线性形式。
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    相关资源
    最近更新 更多