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?

War es hilfreich?

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.

  1. die Sortierindizes der Zeile / Spalte speichern Sie bestellen möchten:

    [~,idx]=sort(data(:,1));
    
  2. alle Zeilen / Spalten neu ordnet nach dem vorherigen sortierte Indizes

    data=data(idx,:)
    
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top