This is package extends the capabilities of the sorting functions to sort entire matrices on a set of columns/rows that are defined in set terms of descending priority.

The `sort!`

, `sort`

and `sortperm`

functions may be provided with an additional argument, `keys::Vector{Int}`

, when provided with a `AbstractMatrix`

to sort. The keys are an array of column or row indices that define which indices to sort on in descending order of priorty.

To sort a matrices rows using columns 1, 2 and 3 to sort:

```
a = [1 3 2; 1 2 3; 1 1 1; 3 4 4; 3 4 1; 3 4 2]
sort(a, [1:3])
```

Similarly to get the row permutation to sort the matrix use `sortperm(a, [1:3])`

.

Each function is given an optional `dim::Int`

argument which defines which dimension to sort (i.e. 1 = sort rows by values in given columns and 2 = sort columns by values in given rows). To sort the columns in matrix `a`

by rows 1 and 2 use `sort(a, [1,2], dim = 2)`

.

07/22/2014

over 6 years ago

9 commits