MathGroup Archive 2005

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

Search the Archive

Re: Sorting on multiple columns within a matrix

dh -- thanks,  your solution works, but it seems it might be awkward to 
extend it to many more than two columns.

I am wondering if anyone knows a way to generalize dh's solution such 
that it could be applied as a pure function to a list which contains the 
columns to sort?  I noodled over it but was unable to figure it out. 
Something like:

  Sort[matrix, puresortfunc[#]  ]& /@ {1,14,2,4}

  where 1,14,2,4 are the columns to use for sorting, and puresortfunc is 
this tricky sorting function that would successively  map # to the 
elements in the list of columns to sort.


Lee Newman wrote:
> Hello,
> I can't come up with a solution to the following simple task:
> -  I have a matrix, let's M={ {"Z",2,"a"},{"A",2,"k"}, {"Z",1,"z"}, 
> {"A",1,"a"},{"Z",3,"k"}, {"A",3,"z"} }
> -  I want to be able to sort the matrix row-wise, based on multiple 
> columns, for example sort first on column 2 (ascending) and then 
> secondly on column1 (ascending)
> desired result:
> A 1 a
> Z 1 z
> A 2 k
> Z 2 a
> A 3 z
> Z 3 k
> I suspect the solution involves using a pure function of some form as 
> the second argument in the Sort function, but I can't figure out what 
> this function should be.
> Thanks,
> Lee

  • Prev by Date: Re: Sorting on multiple columns within a matrix
  • Next by Date: Re: Mathematica equivalent complexplot
  • Previous by thread: Re: Sorting on multiple columns within a matrix
  • Next by thread: Re: Simplify expression