Error in Vector Multiplication of Complex Numbers

7 views (last 30 days)
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 Comments
Stephen23
Stephen23 on 1 Oct 2019
Edited: Stephen23 on 1 Oct 2019
"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 on 1 Oct 2019
Hi Stephen,
Thanks very much for the explanation! This helps a lot!

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 1 Oct 2019
Edited: Andrei Bobrov on 1 Oct 2019
>> [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
>>

More Answers (0)

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!