Построение списка сложных номеров на Z-плоскости в Python

1

Я пробовал:

plot(z)

где z - список комплексных чисел, который показывает abs(z) по сравнению с индексом.

plot( z.real, z.imag )

не работает, он говорит, что list не имеет атрибута real.

  • 0
    Это matplotlib?
Теги:

2 ответа

3

Если z - это список сложных, используйте

[k.real for k in z]

чтобы извлечь реальные части каждого числа в списке.

  • 0
    +1 Я хочу сказать map( operator.attrgetter( "real" ), z ) но я думаю, что, возможно, я слишком много делал на Haskell ...
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(), я понимаю, что он может отображать списки, чтобы они работали.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню