的問題的答案在這裏Why is complex conjugate transpose the default in MatlabMatlab的:()^ *對複數
問T速度表示,對複數的,我們可以用'
符號來表示,用於實數的轉置操作。在數學上,對於實數值完成的轉置操作由符號(.)^T
表示。對於複數的轉置,等效符號是(.)^H
。它的做法是 - 首先我們取複數的共軛,然後進行轉置。這是操作(.)^H
。
我想爲複數執行操作(.)^{*T} = (.)^H
。我爲此使用了符號撇號。請糾正我錯在哪裏。
我想確認一下這個概念的實現是否正確或者不使用Matlab。例如,對於實值向量A_r
,我想它的轉multiply_r = A_r*A_r'
複製數值矢量A_c
複雜的同乘它,這種操作將成爲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;
這樣行嗎?
更新:我試圖採取這個複數值數組的正常轉置,以便它被安排在3行1列1行和3列intead。使用運算符.'
我越來越奇怪的值,因爲該數組現在增加的大小!什麼是正確的方法?
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
看起來不錯。但這取決於你想要做什麼。如果想要轉置複數(無共軛),請使用'。'。如果你想共軛轉置使用'''' –
@Luis Mendo:我想做相當於$(。)^ {* T} =(。)^ H $的操作。那我應該用什麼?這是共軛轉置? – SKM
順便說一句,你不需要寫'sqrt(-1)'你有'i'和'j'符號在Matlab中。 – Shai