MATLAB Answers

Sort a table with different orders for different columns

30 views (last 30 days)
Assume table A:
A = [
'k' 2 4
'a' 3 8
'a' 4 5
'k' 2 2
'a' 3 16
'k' 9 3
'k' 9 8
'a' 4 6
]
If i use sortrows(A) every column is sorted with ascending order:
A = [
'a' 3 8
'a' 3 16
'a' 4 5
'a' 4 6
'k' 2 2
'k' 2 4
'k' 9 3
'k' 9 8
]
Is there a way to sort rows, so first and second column is sorted with ascending order, but third one with descending? I want to get something like this:
A = [
'a' 3 16
'a' 3 8
'a' 4 6
'a' 4 5
'k' 2 4
'k' 2 2
'k' 9 8
'k' 9 3
]
  3 Comments
Star Strider
Star Strider on 31 Mar 2021
It would likely be necessary to sort each column independently, then concatenate the results into a new matrix.

Sign in to comment.

More Answers (1)

David Hill
David Hill on 31 Mar 2021
You can't have a matrix with characters and numbers. But if you convert the characters to double, then:
A=[sort(A(:,1)),sort(A(:,2)),sort(A(:,3),'descend')];
  1 Comment
Karol Buchajczuk
Karol Buchajczuk on 31 Mar 2021
I'm sorry, it is actually a table, not a matrix. I've corrected my question accordingly.

Sign in to comment.

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!