Question

Je voudrais trier une matrice en fonction d'une colonne particulière. Il existe une fonction sort , mais elle trie toutes les colonnes indépendamment.

Par exemple, si ma matrice données est:

 1     3
 5     7
-1     4

Ensuite, le résultat souhaité (tri par la première colonne) serait:

-1     4
 1     3
 5     7

Mais la sortie de sort (données) est:

-1     3
 1     4
 5     7

Comment puis-je trier cette matrice par la première colonne?

Était-ce utile?

La solution

Je pense que la fonction sortrows est ce que vous recherchez. .

>> sortrows(data,1)

ans =

    -1     4
     1     3
     5     7

Autres conseils

Une alternative à sortrows () , qui peut être appliquée à des scénarios plus vastes.

  1. enregistrez les index de tri de la ligne / colonne que vous souhaitez classer:

    [~,idx]=sort(data(:,1));
    
  2. réorganisez toutes les lignes / colonnes en fonction des index triés précédemment

    data=data(idx,:)
    
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top