Re: Sorting 3 points
- To: mathgroup at smc.vnet.net
- Subject: [mg87970] Re: Sorting 3 points
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Mon, 21 Apr 2008 06:38:17 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <fuhfa6$ibk$1@smc.vnet.net>
carlos at colorado.edu wrote:
> Simple question, but documentation is no help.
> I have three coordinate triplets:
>
> P1={x1,y1,z1} P2={x2,y2,z2} P3={x3,y3,z3}
>
> where all entries are numeric. I wont to sort them into
>
> P1s={xs1,ys1,zs1} P2s={xs2,ys2,zs2} P3s={xs3,ys3,zs3}
>
> so that zs3>=zs2>=zs1, with one command
>
> {P1s,P2s,P3s}=Sort[{P1,P2,P3}, Ordering Function]
>
> Is that possible and if so, which Ordering Function
> should be used? Thanks.
The pure function (Last@#2 > Last@#1) & seems to be a good candidate.
For instance,
P1 = {1, 2, 3};
P2 = {3, 1, 2};
P3 = {2, 3, 1};
Sort[{P1, P2, P3}, (Last@#2 > Last@#1) &] (* Any Version *)
SortBy[{P1, P2, P3}, Last] (* Version 6.0 and above *)
{{2, 3, 1}, {3, 1, 2}, {1, 2, 3}}
{{2, 3, 1}, {3, 1, 2}, {1, 2, 3}}
Regards,
-- Jean-Marc