Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

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
> 




  • Prev by Date: Re: How to create this kind of list
  • Next by Date: How to sort and extract from matrix based on separate key-pair
  • Previous by thread: Re: Only real data
  • Next by thread: Problems plotting 3D surface and using manipulate