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 data
est:
1 3
5 7
-1 4
La sortie souhaitée (tri par première colonne) serait alors:
-1 4
1 3
5 7
Mais la sortie de sort(data)
est:
-1 3
1 4
5 7
Comment puis-je trier cette matrice par la première colonne?
Je pense que la fonction sortrows est ce que vous recherchez.
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
Une alternative à sortrows()
, qui peut être appliquée à des scénarios plus larges.
enregistrez les indices de tri de la ligne/colonne que vous souhaitez commander par:
[~,idx]=sort(data(:,1));
réorganiser toutes les lignes/colonnes selon les indices triés précédents
data=data(idx,:)