sort and assign ranking
23 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Gokturk
le 21 Jan 2013
Réponse apportée : TjeerdB
le 27 Oct 2017
Hi I need to sort a vector and assign a ranking for the corresponding sorting order. I'm using sort function [sortedValue_X , X_Ranked] = sort(X,'descend'); but the problem is it assignes different ranks for the same values (zeros). ie x = [ 13 15 5 5 0 0 0 1 0 3] and i want zeros to take the same last rank which is 6 and fives needs to share the 3rd rank etc.. any suggestions?
0 commentaires
Réponse acceptée
Image Analyst
le 21 Jan 2013
You can use the third return argument of unique(): Try this:
X = [ 13 15 5 5 0 0 0 1 0 3]
[sortedValue_X , X_Ranked] = sort(X,'descend')
[uniqueValues, ia, ic]=unique(sortedValue_X)
X_Ranked = max(ic)-ic+1 % <- there's your answer!
In command window:
X_Ranked =
1 2 3 3 4 5 6 6 6 6
Plus de réponses (1)
TjeerdB
le 27 Oct 2017
X = [13 15 5 5 0 0 0 1 0 3];
[temp,X_ranked] = ismember(X,unique(X))
In command window:
X_ranked =
5 6 4 4 1 1 1 2 1 3
0 commentaires
Voir également
Catégories
En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!