Kenny Ortmann wrote:
> excuse my laziness for not looking this up, I googled it but could not find 
> a solution.
> matlab has a
> isreal(array)
> where if the array is full of real numbers the value returned is 1.
> I'm translating matlab code and ran across
>
> if ~isreal(array)
>     array = abs(array)
>
> Is there a way to check to see if a number is real or complex?
There may be a better way, but::

    alltrue(isreal(x))

Would work. As would:

    not sometrue(x.imag)

In the above test you are already negating the test, so you could just 
drop the not.
>  and if so is 
> there a way to extract the(a + ib) because the absolute value of a complex 
> number is like the pythagorean therom on a and b?
>   
I'm not entirely sure what you are looking for here, but x.imag and 
x.real will give you the real and imaginary parts. abs(x) will return 
the magnitude of x whether x is real or complex. x.conj() will return 
complex conjugate.

I'm somewhat suspicious of that matlab code. The code given is 
discontinuous as you cross the negative real axis. Does the result 
subsequently get squared or something? I'm guessing that either the 
matlab code is doing extra work, or there are some hidden assumptions 
(all values are in the positive real half-plane). Or some such. In 
either case, you'd probably be OK just skipping the check for realness 
and always taking the absolute of array. I can't say for sure without 
more context though.

-tim



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion

Reply via email to