Borrar filtros
Borrar filtros

How to get the max value index and the next max value index and next until the end (the smallest) of the array

3 visualizaciones (últimos 30 días)
For example if A Vector
A=[5.2,6.3,1.2,10,2,4.3];
I want to get the index of the max value (in my example is 10 so the index is 4) then find the next max value which is 6.3 then the index is 2,,, the final output i need it to be as follows:
I=[3,2,6,1,5,4]
where I the returned indices corresponding to A

Respuesta aceptada

Ibrahim Fares
Ibrahim Fares el 11 de En. de 2019
Editada: Ibrahim Fares el 11 de En. de 2019
I solved this problem, so I will share it with you:
function [ mapped] = mapping( x )
for i = 1:length(x)
[~,j]=max(x);
mapped(j)=i;
x(j)=-inf;
end
end

Más respuestas (1)

madhan ravi
madhan ravi el 6 de En. de 2019
[~,I]=sort(A)
  3 comentarios
Ibrahim Fares
Ibrahim Fares el 6 de En. de 2019
Thanks for your interest, but A randomly changes in an iteration, is always do this step?
and why this happens?
madhan ravi
madhan ravi el 6 de En. de 2019
Editada: madhan ravi el 6 de En. de 2019
"[D,I] = sort(A) also returns a sort index I which specifies how the
elements of A were rearranged to obtain the sorted output D:"
>> [D,I]=sort(A)
D =
1.2000 2.0000 4.3000 5.2000 6.3000 10.0000
I =
3 5 6 1 2 4 % indices of orginal values
>>

Iniciar sesión para comentar.

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by