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?

¿Fue útil?

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.

  1. guarde los índices de clasificación de la fila / columna que desea ordenar de la siguiente manera:

    [~,idx]=sort(data(:,1));
    
  2. 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
scroll top