Comment puis-je trier un tableau 2D dans MATLAB par rapport à une colonne?
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?
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.
-
enregistrez les index de tri de la ligne / colonne que vous souhaitez classer:
[~,idx]=sort(data(:,1));
-
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