在python中绘制Z平面上的复数nos列表

时间:2010-08-20 12:42:36

标签: python

我试过了:

plot(z)

其中z是一个复数列表,用于绘制abs(z)与索引的关系。

plot( z.real, z.imag )

不起作用,它说list没有属性real

2 个答案:

答案 0 :(得分:3)

如果z是复杂列表,请使用

[k.real for k in z]

提取列表中每个数字的实部。

答案 1 :(得分:0)

如果我正确理解了您的问题,那么在修复属性错误时可能会有效。据我所知,“.real”和“.imag”必须在复数上执行,这意味着除非有j分量,否则它们将无法工作:

>>> a = 2.5
>>> print a.real
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'float' object has no attribute 'real'
>>> a = 2.5 + 0j
>>> print a.real
2.5

在我看来,对于plot()的参数,你试图在列表上使用“.real”和“.imag”。我建议尝试在列表中的复数上使用“.real”和“.imag”。对于复数列表z:

>>> z[0].real
>>> z[0].imag

将分别调用z中第一个复数的实部和虚部。我确信有很多方法可以做到这一点,但以下内容非常简单:

>>> x = []
>>> y = []
>>> for num in z:
...     x.append(num.real)
...     y.append(num.imag)
...
>>> plot(x,y)

抱歉这太罗嗦了,我真累了哈哈。虽然我之前从未使用过plot(),但我的理解是它可以绘制列表以便它可以正常工作。