¿Cómo puedo ordenar una matriz 2-D en MATLAB con respecto a una columna?
Pregunta
Me gustaría ordenar una matriz según una columna en particular. Hay una función sort
, pero ordena todas las columnas de forma independiente.
Por ejemplo, si mi data
de la matriz es:
1 3
5 7
-1 4
Entonces la salida deseada (ordenada por la primera columna) sería:
-1 4
1 3
5 7
Pero la salida de sort (data)
es:
-1 3
1 4
5 7
¿Cómo puedo ordenar esta matriz por la primera columna?
Solución
Creo que la función sortrows es lo que estás buscando .
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
Otros consejos
Una alternativa a sortrows ()
, que puede aplicarse a escenarios más amplios.
-
guarde los índices de clasificación de la fila / columna que desea ordenar de la siguiente manera:
[~,idx]=sort(data(:,1));
-
reordenar todas las filas / columnas de acuerdo con los índices ordenados anteriores
data=data(idx,:)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow