Wie kann ich in Bezug auf eine Spalte eine 2-D-Matrix in MATLAB sortieren?
Frage
Ich möchte eine Matrix sortieren nach einer bestimmten Spalte. Es gibt eine sort
Funktion, aber es sortiert alle Spalten unabhängig.
Zum Beispiel, wenn meine Matrix data
ist:
1 3
5 7
-1 4
Dann wird die gewünschte Ausgabe (durch die erste Spaltensortierung) wäre:
-1 4
1 3
5 7
Aber die Ausgabe von sort(data)
ist:
-1 3
1 4
5 7
Wie kann ich diese Matrix nach der ersten Spalte sortiert werden?
Lösung
Ich denke, die Methode sortRows Funktion ist das, was Sie suchen .
>> sortrows(data,1)
ans =
-1 4
1 3
5 7
Andere Tipps
Eine Alternative zu sortrows()
, was zu einer breiteren Szenarien angewendet werden kann.
-
die Sortierindizes der Zeile / Spalte speichern Sie bestellen möchten:
[~,idx]=sort(data(:,1));
-
alle Zeilen / Spalten neu ordnet nach dem vorherigen sortierte Indizes
data=data(idx,:)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow