Re: Only real data
- To: mathgroup at smc.vnet.net
- Subject: [mg122147] Re: Only real data
- From: "Dr. Wolfgang Hintze" <weh at snafu.de>
- Date: Sun, 16 Oct 2011 07:08:13 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j7blu7$34t$1@smc.vnet.net>
You can select the reals easily using Im[]==0
x = {1, 1.5, I, I + 1, I*Sqrt[2], I*Sqrt[2.]}
{1, 1.5, I, 1 + I, I*Sqrt[2], 1.4142135623730951*I}
Select[x, Im[#1] == 0 & ]
{1, 1.5}
Turning to your attempt:
You are right. Using Head[] or FullForm[] reveals that the Head of
I*Sqrt[2] is not Complex but is is Times.
To see this here are some examples:
x = {1, 1.5, I, I + 1, I*Sqrt[2], I*Sqrt[2.]}
{1, 1.5, I, 1 + I, I*Sqrt[2], 1.4142135623730951*I}
Head /@ x
{Integer, Real, Complex, Complex, Times, Complex}
Cases[x, _Complex]
{I, 1 + I, 1.4142135623730951*I}
Cases[x, Except[_Complex]]
{1, 1.5, I*Sqrt[2]}
Cases[x, _Times]
{I*Sqrt[2]}
--- Wolfgang
"Jörg Schröder" <HB-Kowalczyk-Schroeders at t-online.de> schrieb im
Newsbeitrag news:j7blu7$34t$1 at smc.vnet.net...
> Hello,
>
>
>
> I have a problem to exclude complex solutions. I tried
>
>
>
> data1={2,3/4,1.3,=E4}
>
>
>
> {2,3/4,1.3,=E4}
>
>
>
> Cases[data1, Except[_Complex]]
>
>
>
> {2,3/4,1.3}
>
>
>
> and got, what I expected. But when I have data like
>
>
>
> {0,0,-I Sqrt[3],I Sqrt[3]}
>
>
>
> The above doesn't work. Is this due to a different Head? Is there an
> easy
> way to filter the non-complex data?
>
>
>
> Thanks in advance
>
>
>
> Greetings
>
>
>
> Joerg
>
>
>
> ################
>
> Dr. J=F6rg Schr=F6der
>
> Bremen, Germany
>