Error in Vector Multiplication of Complex Numbers

Hello,
I am running into a strange error in vector multiplication. Let's say I have the two variables, a = 2i and b = 1. It is clear that a^2+b^2 = -4+1 = -3.
However, when I write them in vector form, [a,b]*[a,b]', Matlab gives me an wrong answer, that is, [a,b]*[a,b]' = 5.
Does anyone know what's happening here, or do I miss some logics behind?
Thank you!

2 件のコメント

Stephen23
Stephen23 2019 年 10 月 1 日
編集済み: Stephen23 2019 年 10 月 1 日
"Does anyone know what's happening here, or do I miss some logics behind?"
You are using conjugate tranpose, but you should use element-wise transpose:
>> a = 2i;
>> b = 1;
>> [a,b]' % conjugate transpose (what you are doing)
ans =
0 - 2i
1 - 0i
>> [a,b].' % transpose (what you should be doing)
ans =
0 + 2i
1 + 0i
Note you can trivially avoid the transpose anyway, by defining the vector as a column:
>> [a;b]
ans =
0 + 2i
1 + 0i
Yuling Shen
Yuling Shen 2019 年 10 月 1 日
Hi Stephen,
Thanks very much for the explanation! This helps a lot!

サインインしてコメントする。

 採用された回答

Andrei Bobrov
Andrei Bobrov 2019 年 10 月 1 日
編集済み: Andrei Bobrov 2019 年 10 月 1 日

0 投票

>> [a,b]*[a;b]
ans =
-3
>> [a,b]*[a,b].'
ans =
-3
>> [a,b]*transpose([a,b])
ans =
-3
>> [a,b].'
ans =
0 + 2i
1 + 0i
>> [a,b]'
ans =
0 - 2i
1 + 0i
>> transpose([a,b])
ans =
0 + 2i
1 + 0i
>> ctranspose([a,b])
ans =
0 - 2i
1 + 0i
>>

1 件のコメント

Yuling Shen
Yuling Shen 2019 年 10 月 1 日
Many thanks for the answer!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeGraphics Object Programming についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by