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 comentarios

Stephen23
Stephen23 el 1 de Oct. de 2019
Editada: Stephen23 el 1 de Oct. de 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 el 1 de Oct. de 2019
Hi Stephen,
Thanks very much for the explanation! This helps a lot!

Iniciar sesión para comentar.

 Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 1 de Oct. de 2019
Editada: Andrei Bobrov el 1 de Oct. de 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
>>

Más respuestas (0)

Categorías

Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 1 de Oct. de 2019

Comentada:

el 1 de Oct. de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by