필터 지우기
필터 지우기

How to give ranking from highest to lowest

조회 수: 200 (최근 30일)
Mekala balaji
Mekala balaji 2014년 12월 6일
댓글: Image Analyst 2024년 1월 27일
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
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
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
Image Analyst 2024년 1월 27일
Data=[5 6 9 1 5 2]
Data = 1×6
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
r = 1×6
3 2 1 6 4 5

댓글을 달려면 로그인하십시오.

추가 답변 (4개)

Azzi Abdelmalek
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
Azzi Abdelmalek 2014년 12월 6일
Ok Roger, I understand now.
Azzi Abdelmalek
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
Sandeep Sai Kiran 2021년 2월 9일
편집: Image Analyst 2024년 1월 27일
Data =[4 8 9 4 7 4]
Data = 1×6
4 8 9 4 7 4
Kal = sort(Data , 'Descend')
Kal = 1×6
9 8 7 4 4 4
Kapil =sort(Kal)
Kapil = 1×6
4 4 4 7 8 9

Zalán Kocsis
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']
ans = 2×6
5 6 9 1 5 2 3 2 1 5 3 4

ASWIN
ASWIN 2024년 1월 27일
편집: Image Analyst 2024년 1월 27일
A=ones(4);
m=length(A);
r=rank(A)
r = 1
  댓글 수: 2
Dyuman Joshi
Dyuman Joshi 2024년 1월 27일
편집: Dyuman Joshi 2024년 1월 27일
That rank() is different from what OP is asking about.
Image Analyst
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!

Translated by