MATLAB Answers

# ranking the data in matrix and arrange them as per rank.

1 view (last 30 days)
Karanvir singh Sohal on 4 Apr 2021
Commented: Bruno Luong on 4 Apr 2021
Hello!
I have a matrix D and E
D=[1 2 3; 7 8 9; 4 5 6; 3 0 5];
E=[D sum(D')' ranks(sum(D')')]
output of E is
E = [ 1 2 3 6 1
7 8 9 24 4
4 5 6 15 3
3 0 5 8 2]
Ok now I have 2 doubts
1. I want to rank(last column of E) in a way that highest(24) value in column 4 gets rank 1.
2. I want sort the data in another matrix such that rank 1 row gets on top.
expected results
[7 8 9 24 1
4 5 6 15 2
3 0 5 8 3
1 2 3 6 4]
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Bruno Luong on 4 Apr 2021
>> D=[1 2 3; 7 8 9; 4 5 6; 3 0 5];
E=[D sum(D')' ranks(sum(D')')]
Unrecognized function or variable 'ranks'.
Did you mean:
>> E=[D sum(D')']
E =
1 2 3 6
7 8 9 24
4 5 6 15
3 0 5 8
>> sortrows(E,-4)
ans =
7 8 9 24
4 5 6 15
3 0 5 8
1 2 3 6
I let youu deal with the last column, that is nothing more or less interesting than the row index of the array
##### 2 CommentsShowHide 1 older comment
Bruno Luong on 4 Apr 2021
as I said rank after sorting is
r = (1:size(D,1))'
It's a row index of your sorted array.

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!