ArgSort

Clasificación indirecta de una matriz o un vector.

vector vector::Sort(
  func_name  compare_func=NULL // función de comparación
  T          context             // parámetro para la función de clasificación de usuario
   );
 
matrix matrix::Sort(
  func_name  compare_func=NULL   // función de comparación
  T          context             // parámetro para la función de clasificación de usuario
   );
 
matrix matrix::Sort(
  const int  axis,               // eje para la clasificación
  func_name  compare_func=NULL   // función de comparación
  T          context             // parámetro para la función de clasificación de usuario
   );

Parámetros

axis

[in]  Eje para la clasificación: 0 – horizontal, 1 – vertical.

func_name

[in]  Comparador. Podemos especificar uno de los valores de la enumeración ENUM_SORT_MODE o nuestra propia función de comparación. Si no especificamos ninguna función, se utilizará la clasificación ascendente.
 
La función de comparación personalizada puede ser de dos tipos:

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

Aquí T será el tipo de matriz o vector, mientras que TContex será el tipo de la variable context transmitida como parámetro opcional al método Sort.

context

[in]  Parámetro opcional que se puede transmitir a la función de clasificación personalizada.

Valor retornado

Vector o matriz con los índices de los elementos clasificados. Por ejemplo, el resultado [4,2,0,1,3] indica que la posición cero del vector clasificado deberá tener un elemento con el índice 4, la primera posición deberá tener un elemento con el índice 2, etc.