Ranking values - sorting into descending order

12 visualizaciones (últimos 30 días)
david crowley
david crowley el 24 de Jul. de 2021
Respondida: Max Heiken el 24 de Jul. de 2021
I have a that for each row (i) ranks the column values. However, it ranks them in the ascending order. I require it to be ranked in descending order. Can anyone help with modifying the below code block to descending order?
for i = 1:height(d)
[temp, ranked] = ismember(X(i,:),unique(X(i,:)));
rnkR1List(i,:) = ranked;
end

Respuesta aceptada

Max Heiken
Max Heiken el 24 de Jul. de 2021
If you do not expect there to be duplicates, I too recommend to use sort instead.
[~, rnkR1List] = sort(X, 2, 'descend');
If you absolutely need identical values to have the same ranks, then you could extend your own code by just inverting the ranks:
for i = 1:height(d)
[temp, ranked] = ismember(X(i,:),unique(X(i,:)));
rnkR1List(i,:) = ranked;
end
max(rnkR1List, [], 2) - rnkR1List + 1;

Más respuestas (1)

Yazan
Yazan el 24 de Jul. de 2021
Just use the Matlab function sort without any looping. See an example below.
X = randn(10, 10);
Xranked = sort(X, 2, 'descend');

Categorías

Más información sobre Matrices and Arrays en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by