ArgSort

Indirektes Sortieren einer Matrix oder Vektors.

vector vector::Sort(
  func_name  compare_func=NULL // Vergleichsfunktion
  T          context             // Parameter für die Nutzerfunktion zum Sortieren
   );
 
matrix matrix::Sort(
  func_name  compare_func=NULL   // Vergleichsfunktion
  T          context             // Parameter für die Nutzerfunktion zum Sortieren
   );
 
matrix matrix::Sort(
  const int  axis,               // Achse für die Sortierung
  func_name  compare_func=NULL   // Vergleichsfunktion
  T          context             // Parameter für die Nutzerfunktion zum Sortieren
   );

Parameter

axis

[in]  Die Achse, nach der sortiert werden soll: 0 ist horizontal, 1 ist vertikal.

func_name

[in]  Vergleichsfunktion. Sie können einen der Werte der Enumeration ENUM_SORT_MODE oder Ihre eigene Vergleichsfunktion angeben. Wenn keine Funktion angegeben wird, wird aufsteigend sortiert.
 
Eine eigene Vergleichsfunktion kann von zwei Typen sein:

  • int comparator(T x1,T x2)
  • int comparator(T x1,T x2,TContext context)

Hier ist T der Typ der Matrix oder des Vektors, und TContex ist der Typ der "Kontext"-Variablen, die als zusätzlicher Parameter an die Sortiermethode übergeben wird.

context

[in] Zusätzlicher optionaler Parameter, der an eine nutzerdefinierte Sortierfunktion übergeben werden kann.

Rückgabewert

Vektor oder Matrix mit den Indizes der sortierten Elemente. Das Ergebnis [4,2,0,1,3] bedeutet zum Beispiel, dass an der Position Null ein Element mit dem Index 4 stehen sollte, an der Position Eins ein Element mit dem Index 2 usw.