How to give ranking from highest to lowest
조회 수: 200 (최근 30일)
이전 댓글 표시
Hello, I have number like
Data=[5 6 9 1 5 2]
I want to rank them as: [3 2 1 6 4 5] Can any please help me How can I do this. Thanks in advance.
댓글 수: 1
amrith sg
2022년 3월 31일
i got a average accuracy 79% at rank 1
from rank 2 to rank 10 , i need to find different average accuracy that should be greater than 79%
please give me the code regarding this problem
채택된 답변
Roger Stafford
2014년 12월 6일
This should give you the rank you are asking for, Mekala:
[~,p] = sort(Data,'descend');
r = 1:length(Data);
r(p) = r;
'r' will be the ranking.
댓글 수: 1
Image Analyst
2024년 1월 27일
Data=[5 6 9 1 5 2]
% I want to rank them as: [3 2 1 6 4 5]
[~,p] = sort(Data,'descend');
r = 1:length(Data);
r(p) = r
추가 답변 (4개)
Azzi Abdelmalek
2014년 12월 6일
편집: Azzi Abdelmalek
2014년 12월 6일
Data=[5 6 9 1 5 2]
[sd,r]=sort(Data,'descend')
sd % sorted data
r % the corresponding indices
댓글 수: 5
Azzi Abdelmalek
2014년 12월 6일
We can get the result by sorting the indices resulting from the first sort
Data=[5 6 9 1 5 2]
[~,ii]=sort(Data,'Descend')
[~,r]=sort(ii)
Sandeep Sai Kiran
2021년 2월 9일
편집: Image Analyst
2024년 1월 27일
Data =[4 8 9 4 7 4]
Kal = sort(Data , 'Descend')
Kapil =sort(Kal)
댓글 수: 0
Zalán Kocsis
2021년 6월 2일
편집: Image Analyst
2024년 1월 27일
Here's one that assigns the same rank to same values (ties):
Data=[5 6 9 1 5 2];
[C,~,ic] = unique(Data,'sorted'); % ic are ranks from lowest to highest ; C are unique values
r=(1+max(ic)-ic); % r: rank (highest receives 1; lowest receives length(C); tied values receive same rank)
[Data;r']
ASWIN
2024년 1월 27일
편집: Image Analyst
2024년 1월 27일
A=ones(4);
m=length(A);
r=rank(A)
댓글 수: 2
Dyuman Joshi
2024년 1월 27일
편집: Dyuman Joshi
2024년 1월 27일
That rank() is different from what OP is asking about.
Image Analyst
2024년 1월 27일
By "ranking" he really meant sorting. Your solution does not give the answer of [3 2 1 6 4 5] that he asked for.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!