如何将复数与自身对齐

时间:2017-05-10 16:45:10

标签: matlab math

a = [1;2;3];

square_real = a'*a;

ans =

14

a =

 1
 2
 3

在这个例子中,我将变量a(数组)中的数字与其自身进行平方。

要进行相同的操作,即对于自身的复数进行平方,操作是什么?我应该采用ctranpose还是共轭转置?我很困惑。

>> ac=[1 + 1j; 2 + 2j; 3 + 0.1j]

ac =

   1.0000 + 1.0000i
   2.0000 + 2.0000i
   3.0000 + 0.1000i

>> ac'*ac

ans =

   19.0100

我不知道我是否选择了正确的操作员。

根据收到的评论进行更新:我不希望复数值数组的元素更改其符号。我想将数组与自身相乘,以便在乘法时获得标量答案。为了做到这一点,应该是数学中的符号和Matlab中的相应命令?

1 个答案:

答案 0 :(得分:1)

正如评论中所述,您需要transpose .'而不是complex conjugate transpose '。对于实数,转置和复共轭转置是相同的,因为没有涉及iota ij。所以你要找的是:

ac = [1 + 1j; 2 + 2j; 3 + 0.1j];
req = ac.' * ac;

如果您希望其标量幅度作为输出,请使用abs

abs(req)

就数学中的符号而言,转置通常表示为:  
•Aᵀ  
•A'(虽然它在MATLAB中是复共轭转置)

而复共轭转置通常表示为:  
•Aᴴ  
•(A̅) T  
•A *

但请注意,Wikipedia提及:

  

在某些情况下,A*表示具有复杂共轭的矩阵   然后,条目和共轭转置由A*ᵀAᵀ*

表示

定义您将在文本中使用的符号始终是一个好习惯。