[B,IX] = sort(A,...) - Order for sort()-function

"Orlando Döhring" orl at gmx.de
Tue May 29 11:31:23 EDT 2007


Dear community,
 
I want to use the sort function to sort a (nested) list. General information can be found below.
 
http://www.python.org/doc/2.4.2/lib/typesseq-mutable.html
http://wiki.python.org/moin/HowTo/Sorting
http://www.python.org/doc/2.4.4/whatsnew/node12.html
 
I want to solve the following problem. Given a list I do not only want to retrieve the sorted list but also the position of the original elements (IX below). The example is taken from Matlab syntax:
 
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/sort.html
 
'[B,IX] = sort(A,...) also returns an array of indices IX, where size(IX) == size(A). If A is a vector, B = A(IX). If A is an m-by-n matrix, then each column of IX is a permutation vector of the corresponding column of A, such that
for j = 1:n
    B(:,j) = A(IX(:,j),j); 
end'
--
 
A = [ 3 7 5
      0 4 2 ];
 
# in Python: A = [[3,7,5],[0,4,2]]
 
[B,IX] = sort(A,2)
 
# sort by rows

B =
     3     5     7
     0     2     4

IX =
     1     3     2
     1     3     2
 
# first line: 3 was formerly in the first position, 5 formerly in position 3, 7 formerly in position 2
# second line: similiarly
 
 
Yours,
 
Orlando

-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger



More information about the Python-list mailing list