共轭转置等于逆矩阵,一个矩阵的共轭转置

  共轭转置等于逆矩阵,一个矩阵的共轭转置

  我对numpy不是很有经验,但基于@hpaulj的评论,我可以提出以下建议:

  如果不想受到numpy.matrix对象的限制(见此处警告),可以定义自己的函数来执行共轭转置。你需要做的就是转置数组,然后从结果中减去结果的虚部,再乘以2。我不确定这在计算上有多高效,但它肯定会给出正确的结果。在

  我希望类似这样的东西能起作用:Y=C * ctranspose(Up[:0:p-1]) * Y

  .

  def ctranspose(arr:NP . ndarray)-NP . ndarray:

  #所涉及的数学解释:

  # x==Real(X) j*Imag(X)

  # conj_x==Real(X) - j*Imag(X)

  # conj _ X==Real(X)j * Imag(X)-2j * Imag(X)==X-2j * Imag(X)

  tmp=arr.transpose()

  返回tmp - 2j*tmp.imag

  (解决方案是针对Python3的)

  基于@AndrasDeak评论的更优雅的解决方案:

  ^{pr2}$

  另外请注意python和MATLAB在索引方面的两个区别:Python是基于0的(也就是说,数组的第一个索引是0,这与MATLAB中的1不同)

  Python中的索引是inclusive:exclusive,而MATLAB中的索引是inclusive:inclusive。在

  所以,当我们想在MATLAB中访问一个向量的前3个元素时,可以写成:RES=vec(1:3);

  在Python中,我们可以写成:res=vec[0:3] #或[:3]

  (再次说明,这个解释归功于@安朵斯)

共轭转置等于逆矩阵,一个矩阵的共轭转置