MathGroup Archive 2005

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

Search the Archive

Re: sorting complex number?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg57474] Re: [mg57461] sorting complex number?
  • From: Pratik Desai <pdesai1 at umbc.edu>
  • Date: Sun, 29 May 2005 01:03:31 -0400 (EDT)
  • References: <200505280940.FAA21775@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

>
>
>Hi, I need some help
>  I am trying to sort a list of complext number, say, List={a+b*I, c+d*I};
> and I want a>c and b>d. I know that Sort can do this with a small list of complex numbers, but what I deal with is a list of about 100000 and maybe more, 
>

>and it doesn't seem to work with the imaginary part when you just Sort[List],
>  
>
Try this if you want it to sort it with respect to the imaginary value

values={-0.04484492919995264 - 21.97958759549533*I,
 -0.04484492919995265 + 21.979587595495328*I,
 -0.16025833149175872 + 18.801523562303874*I,
 -0.16025833149175872 - 18.801523562303874*I,
 -0.5008914185011427 + 15.633451946906193*I,
 -0.5008914185011426 - 15.633451946906193*I,
 -0.1751588280975272 + 12.564746566861638*I,
 -0.1751588280975272 - 12.564746566861638*I,
 -0.04711742781559087 - 9.418500468421371*I,
 -0.04711742781559086 + 9.418500468421371*I,
 -0.4590555619739296 + 6.232750821142238*I,
 -0.4590555619739296 - 6.232750821142238*I,
 -0.3331650057325463 + 3.1662410948948874*I,
 -0.3331650057325463 - 3.1662410948948874*I}

Sort[values, Abs[Im[#1]] < Abs[Im[#2]] &]
 >>{-0.3331650057325463 - 3.1662410948948874*I,
 -0.3331650057325463 + 3.1662410948948874*I,
 -0.4590555619739296 - 6.232750821142238*I,
 -0.4590555619739296 + 6.232750821142238*I,
 -0.04711742781559086 + 9.418500468421371*I,
 -0.04711742781559087 - 9.418500468421371*I,
 -0.1751588280975272 - 12.564746566861638*I,
 -0.1751588280975272 + 12.564746566861638*I,
 -0.5008914185011426 - 15.633451946906193*I,
 -0.5008914185011427 + 15.633451946906193*I,
 -0.16025833149175872 - 18.801523562303874*I,
 -0.16025833149175872 + 18.801523562303874*I,
 -0.04484492919995265 + 21.979587595495328*I,
 -0.04484492919995264 - 21.97958759549533*I}

Or you can try something like this
complexsort[list_] := Block[{list1, list2}, list1 = Sort[list, Im[#1] < \
Im[#2] &]; list2 = Sort[Conjugate[list], Im[#1] > Im[#2] &];

> Does anyone have a small program to do this?
> thank you
>

I would be looking forward to it as you are

Best regards

Pratik Desai



Pratik Desai
Graduate Student
UMBC
Department of Mechanical Engineering
Phone: 410 455 8134



  • Prev by Date: Re: Re: Re: Applying a list of functions to a list of arguments
  • Next by Date: Re: Solve or Reduce on a monstrosity of an expresssion (and a prize!)
  • Previous by thread: Re: sorting complex number?
  • Next by thread: Re: sorting complex number?