Matrix‎ > ‎Sort‎ > ‎

Multiple columns

Nested sort of a matrix based on multiple columns

% sort data first by colum 1, then by column 2, and finally by column 3 

sortrows(data,[1,2,3])


Example

% create a data table with three columns ("Subject" "Treatment"  "Time" )

data = [1     1     1 
        2     1     1
        3     1     1
        1     2     1
        2     2     1
        3     2     1
        1     1     2
        2     1     2
        3     1     2
        1     2     2
        2     2     2
        3     2     2]


% sort data table first using column 1, then using column 2, and finally column 3

 [data_sorted, sort_index] = sortrows(data, [1,2,3])

data_sorted =

     1     1     1
     1     1     2
     1     2     1
     1     2     2
     2     1     1
     2     1     2
     2     2     1
     2     2     2
     3     1     1
     3     1     2
     3     2     1
     3     2     2




Index of how the rows are re-ordered

sort_index =   

     1
     7
     4
    10
     2
     8
     5
    11
     3
     9
     6
    12
 
  data_sorted = data(sort_index,:)