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

MathGroup Archive 2012

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

Search the Archive

Re: SortBy won't order irrationals

  • To: mathgroup at smc.vnet.net
  • Subject: [mg124055] Re: SortBy won't order irrationals
  • From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
  • Date: Sat, 7 Jan 2012 05:21:33 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • References: <je6e9b$q93$1@smc.vnet.net>

This behavior is precisely as described in the documentation:

"Sort treats powers and products specially, ordering them to
correspond to terms in a polynomial."

FullForm[Sqrt[2]]

=> Power[2,Rational[1,2]]

Adding an N to your SortBy function isn't that much of a trouble is
it?

In case of Sort you could use Less as the ordering function.

Cheers -- Sjoerd


Check out Stackoverflow's Mathematica tag: http://stackoverflow.com/questions/tagged/mathematica
or better, help out with the new dedicated Mathematica Q&A site on
StackExchange.
It's almost in private beta, but needs just a few extra people to kick
off and participate. Go to:
http://area51.stackexchange.com/proposals/37304/mathematica?referrer=EJOMFcZOBpAIDM_
9uBjtlA2

On Jan 6, 10:18 am, Chris Young <c... at comcast.net> wrote:
> Have to use N[ ] on them first. Combined with Sort's refusal to accept
> multiple keys, this is extremely exasperating.
>
> In[1218]:= ptsIrr =
>  {
>   {0, 2}, {1, Sqrt[2]}, {2, 2},
>   {4, 1}, {Sqrt[5], 1}, {6, 1}, {Sqrt[3], 1},
>   {7, 0}, {-1, 0}
>   }
>
> Out[1218]= {{0, 2}, {1, Sqrt[2]}, {2, 2}, {4, 1}, {Sqrt[5], 1}, {6,
>   1}, {Sqrt[3], 1}, {7, 0}, {-1, 0}}
>
> In[1219]:= sortIrrY = SortBy[ptsIrr, #[[2]] &]
>
> Out[1219]= {{-1, 0}, {7, 0}, {4, 1}, {6, 1}, {Sqrt[3], 1}, {Sqrt[5],
>   1}, {0, 2}, {2, 2}, {1, Sqrt[2]}}
>
> In[1220]:= sortIrrYN = SortBy[ptsIrr // N, #[[2]] &]
>
> Out[1220]= {{-1., 0.}, {7., 0.}, {1.73205, 1.}, {2.23607, 1.}, {4.,
>   1.}, {6., 1.}, {1., 1.41421}, {0., 2.}, {2., 2.}}
>
> In[1221]:= sortIrrYN2 = SortBy[ptsIrr, N[#[[2]]] &]
>
> Out[1221]= {{-1, 0}, {7, 0}, {4, 1}, {6, 1}, {Sqrt[3], 1}, {Sqrt[5],
>   1}, {1, Sqrt[2]}, {0, 2}, {2, 2}}




  • Prev by Date: Re: DirectoryStack[] not showing top directory stack item
  • Next by Date: Re: How to plot divergence of gradient as contour
  • Previous by thread: Re: SortBy won't order irrationals
  • Next by thread: Re: JordanDecompose[]