Dr. Phillip M. Feldman wrote:
When I try to compute the phase of a complex number, I get an error message:

In [3]: from cmath import *
In [4]: x=1+1J
In [5]: phase(x)
<snip>
NameError: name 'phase' is not defined
<snip>
AttributeError: 'complex' object has no attribute 'phase'

Any advice will be appreciated.

phase() has been added to Python 2.6 and 3.0. It's not available in Python 2.5 and earlier. If you'd used cmath.phase() instead of the ugly "from cmath import *" statement you'd have seen the correct error message.

You can write your own phase() function. This function is mostly correct unless either the real and/or the imag part is NaN or INF.

from math import atan2

def phase(z):
    z += 1j # convert int, long, float to complex
    return atan2(z.imag, z.real)

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to