The answer to the question asked here Why is complex conjugate transpose the default in Matlab
says that for complex numbers we can use '
symbol to denote the transpose operation that is used for real numbers. Mathematically, the transpose operation that is done for real valued numbers is denoted by the symbol (.)^T
. For the transpose of complex numbers the equivalent symbol is (.)^H
. The way it is done is -- First we take the conjugate of the complex number and then take its transpose. This is the operation (.)^H
.
I want to implement the operation (.)^{*T} = (.)^H
for complex number. I have used the symbol apostrophe for this. Please correct me where wrong.
I wanted to confirm if my implementation of the concept is correct or not using Matlab. For example, for real valued vector A_r
, I want to multiply it with its transpose multiply_r = A_r*A_r'
Replicating the same for complex valued vector A_c
, this operation would become multiply_c = A_c * A_c'
A_r =[1,2,3]; %real valued vector
B_r = A_r'; %transpose of real valued vector
multiply_r =A_r*B_r;
A_c = [1 + sqrt(-1)*1, 2+sqrt(-1)*2, 3+sqrt(-1)*3]; %complex valued vector
B_c = A_c'; %transpose of complex valued vector
multiply_c = A_c*B_c;
Is this okay?
UPDATE : I am trying to take the normal transpose of this complex valued array, so that it is arranged in 3 rows and 1 column intead of 1 row and 3 columns. Using the operator .'
I am getting weird values because the array is now increased in size !! What is the proper way?
h = [ -5.1053 + 3.6797i 1.3327 + 5.7339i 4.1302 -10.7521i].'
h =
-5.1053 + 3.6797i
1.3327 + 5.7339i
4.1302
0 -10.7521i