如何创建复数的对称矩阵?

How to create a symmetric matrix of complex numbers?

我想在 Matlab 中使用 toeplitz 命令创建一个包含复杂元素的对称矩阵。但是,如果我为 toeplitz 命令提供复杂的条目,它 returns 一个 Hermitian 矩阵,也就是说,虚部的符号在对角线上方和下方反转。

matrix = toeplitz([ 1 + 1i, 2 + 2i])

matrix =

   1.0000 + 1.0000i   2.0000 + 2.0000i
   2.0000 - 2.0000i   1.0000 + 1.0000i

如何创建一个对称矩阵,其中虚部的符号在对角线上下相同,如下所示:

matrix =

   1.0000 + 1.0000i   2.0000 + 2.0000i
   2.0000 + 2.0000i   1.0000 + 1.0000i

最简单的方法是将您的输入两次传递给toeplitz,因为您实际上想要创建一个不对称托普利茨矩阵,其中不对称部分是托普利茨矩阵的自然共轭复数部分的共轭复数:

X = [ 1 + 1i, 2 + 2i, 3 + 3i]
matrix = toeplitz( X, X )

matrix =

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