Python中的复杂矩阵

时间:2016-08-02 23:01:46

标签: python python-2.7 python-3.x

我对此Python代码有疑问:

A = np.zeros((2*M + 2,nt))
A[1, :] = d[0,0] * np.ones((1,nt))

其中d[0,0]很复杂。我收到了这个错误:

ComplexWarning: Casting complex values to real discards the imaginary part

期间的

A[1, :] = d[0,0] * np.ones((1,nt))

2 个答案:

答案 0 :(得分:0)

这是因为默认情况下numpy数组保存的是int类型的零,并且您尝试将复数数组分配给整数数组。如果你写A = np.zeros((2*M+2, nt), dtype=np.complex)它应该解决问题。 dtype参数基本上告诉numpy转换元素complex 0,它实际上是0+0.j

答案 1 :(得分:0)

您是否尝试计算复杂值数组A真正的值数组A?如果是前者,则将A声明为:

A = np.zeros((2*M + 2,nt), dtype=complex)

否则,将复杂值d[0, 0]投射到真实的使用:

A[1, :] = (1+4j).real * np.ones((1,1))