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: [mg122150] Re: Only real data
  • From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
  • Date: Sun, 16 Oct 2011 07:08:46 -0400 (EDT)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <201110151003.GAA03159@smc.vnet.net>

On 15 Oct 2011, at 12:03, J=F6rg Schr=F6der wrote:

> 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
>


Yes. ,I Sqrt[3] is a product so it has head Times and not Complex. You 
could use:

Select[data, FreeQ[#, Complex] &]

or

Select[data, Element[#, Reals] &]


I consider the second approach better, but note that in more complicated 
cases neither will guarantee that the numbers you have selected are all 
the real numbers in your list.
For example, if

data = {1, I, Cos[2 + I] + I*Sin[2]*Sinh[1]}

both methods will fail to select Cos[2 + I] + I*Sin[2]*Sinh[1]  which is 
a real number since:

ComplexExpand[Cos[2 + I] + I*Sin[2]*Sinh[1]]

cos(2) cosh(1)

Andrzej Kozlowski







  • References:
    • Only real data
      • From: Jörg Schröder <HB-Kowalczyk-Schroeders@t-online.de>
  • Prev by Date: Re: How to create this kind of list
  • Next by Date: Re: How to create this kind of list
  • Previous by thread: Re: Only real data
  • Next by thread: Re: Only real data