Matlab - Orden ascedente vector

 
Vista:

Orden ascedente vector

Publicado por Xiomara (23 intervenciones) el 16/11/2011 23:52:26
Hola, mi problema es el siguiente, tengo un listado de números (indices), los cuales quiero darles un ranking en orden ascedente, pero no quiero que mis indices se organicen en orden ascedenete, lo que quiero decir es esto:

Indices

3.6865
7.8526
0.5007
0.2309
0.0189
0.1067

Al ordenarlos en orden ascendente me queda:

Ranking___Indices
1________0.0189
2________0.1067
3________0.2309
4________ 0.5007
5________3.6865
6________7.8526

Pero yo NO LO QUIERO ASI, quiero que mis indices queden en el orden original, pero el ranking de su orden ascedente si quede como es, es decir, lo que quiero es esto:

Indices______Ranking
3.6865______5
7.8526______6
0.5007______4
0.2309______3
0.0189______1
0.1067______2

Les agradezco la ayuda que me pudieran brindar, ya que he estado intentado pero no he podido :'(.

Saludos!!!
Xio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Orden ascedente vector

Publicado por Jorge (226 intervenciones) el 17/11/2011 01:02:55
Lo que pasa es que tu resultado final no está ordenado. Eso lo complica.

Esta es una posibilidad...

x(:, 1) = [3.6865 7.8526 0.5007 0.2309 0.0189 0.1067]';
x(:, 2) = [1 : length(x)]

y = sort(x, 1)
for i = 1 : length(x(:, 1))
x(i, 2) = find(x(i) == y);
end
x
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Orden ascedente vector

Publicado por Xiomara (23 intervenciones) el 17/11/2011 03:25:24
Hola Jorge!!

Muchas gracias por tu ayuda, me dio tal cual como quería :D :D :D !!!

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar