Como posso classificar uma matriz 2-D no MATLAB em relação a uma coluna?

Eu gostaria de classificar uma matriz de acordo com uma coluna específica. Existe uma function de sort , mas ele classifica todas as colunas independentemente.

Por exemplo, se meus data matriz forem:

  1 3 5 7 -1 4 

Então a saída desejada (sorting pela primeira coluna) seria:

 -1 4 1 3 5 7 

Mas a saída de sort(data) é:

 -1 3 1 4 5 7 

Como posso classificar essa matriz pela primeira coluna?

Eu acho que a function sortrows é o que você está procurando.

 >> sortrows(data,1) ans = -1 4 1 3 5 7 

Uma alternativa para sortrows() , que pode ser aplicada a cenários mais amplos.

  1. salve os índices de sorting da linha / coluna que você deseja encomendar:

     [~,idx]=sort(data(:,1)); 
  2. reordenar todas as linhas / colunas de acordo com os índices ordenados anteriores

     data=data(idx,:)