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