2010-08-20 2 views
1

에서 Z 평면에 복잡한 번호의 목록을 세우고 내가 시도 :파이썬

z 인덱스 대 abs(z)을 나타내는 복소수의 목록입니다
plot(z) 

.

plot(z.real, z.imag) 

그것은 list이 속성 real이없는 말한다 작동하지 않습니다.

+0

matplotlib입니까? – kennytm

답변

3

z 복잡한의 목록입니다 경우, 목록에있는 모든 번호의 실제 부분을 추출하는

[k.real for k in z] 

를 사용합니다.

+0

+1'map (operator.attrgetter ("real"), z)'하지만 나는 너무 많은 하스켈을했을지도 모른다고 생각한다. – katrielalex

0

질문을 올바르게 이해하는 경우, 속성 오류를 수정하면 작동 할 수 있습니다.

>>> 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 

그것은 음모에 대한 인수처럼 나에게 보인다 ".real은"와 "imag를 갖고는"AJ 구성 요소가없는 한 그들은 작동하지 않습니다 즉, 지금까지의 내가 아는 한 복소수에서 수행되어야합니다()에서 목록의에 ".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()을 사용한 적이 없지만 목록을 작성하여 작동해야한다는 것을 이해합니다.