Matlab - ordenar matriz

   
Vista:

ordenar matriz

Publicado por Alexander alexander.unaic@gmail.com (1 intervención) el 05/05/2014 19:56:59
Mi duda es la siguiente:
Tengo la matriz: A=[6 -2 2 4;12 -8 6 10;3 -13 9 3;-18 4 1 -18]
A =

6 -2 2 4
12 -8 6 10
3 -13 9 3
-18 4 1 -18

Quiero ordenarla de mayor a menor de acuerdo al valor absoluto de la columna 1, seria fácil si fueran todos positivos podría utilizar el comando B=sortrows(A,1)

B =

12 -8 6 10
6 -2 2 4
3 -13 9 3
-18 4 1 -18

como ven lo ordena efectivamente de mayor a menor

pero yo quisiera que lo ordene por valor absoluto

B =

-18 4 1 -18
12 -8 6 10
6 -2 2 4
3 -13 9 3
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
Imágen de perfil de Jorge De Los Santos

ordenar matriz

Publicado por Jorge De Los Santos (212 intervenciones) el 06/05/2014 00:38:28
Hola Alexander...

Puedes hacerlo de la siguiente manera:

1
2
3
4
A=[6 -2 2 4;12 -8 6 10;3 -13 9 3;-18 4 1 -18];
[B,I]=sortrows(abs(A),-1);
S=sign(A);
B=B.*S(I,:);


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