Ordenar filas en MATLAB
-
Utilice la función
sortrows()
para ordenar filas de matriz en MATLAB -
Use la función
sortrows()
para ordenar las filas de la tabla en MATLAB
Este tutorial analizará la clasificación de filas presentes en una matriz utilizando la función sortrows()
en MATLAB. En el análisis y procesamiento de datos, la clasificación es esencial porque facilitará el análisis y el procesamiento de los datos cuando se clasifiquen.
Por ejemplo, si tenemos una tabla de pacientes en un hospital y queremos encontrar a una persona en concreto, y si la tabla no está ordenada, tendremos que repasar todos los datos para encontrar a una persona. Pero si la tabla está ordenada según la primera letra de los nombres de los pacientes, podemos ver fácilmente a la persona porque ahora solo tenemos que mirar los nombres a partir de una letra específica.
Utilice la función sortrows()
para ordenar filas de matriz en MATLAB
Podemos usar la función sortrows()
de Matlab para ordenar las filas presentes en una matriz. La primera sintaxis de la función sortrows()
se da a continuación:
output = sortrows(matrix)
La sintaxis anterior ordenará las filas en la matriz dada según los elementos de la primera columna o el primer elemento de cada fila en orden ascendente. Si dos o más filas tienen el mismo primer elemento, la función comparará sus segundos elementos y así sucesivamente.
Por ejemplo, ordenemos las filas en una matriz usando la sintaxis anterior. Vea el código a continuación.
clc
clear
My_matrix = [5:10;2:7;3:8]
New_matrix = sortrows(My_matrix)
Producción :
My_matrix =
5 6 7 8 9 10
2 3 4 5 6 7
3 4 5 6 7 8
New_matrix =
2 3 4 5 6 7
3 4 5 6 7 8
5 6 7 8 9 10
Creamos una matriz de 3 por 6 en el código anterior y ordenamos sus filas. Podemos comparar las dos matrices en la salida para verificar el resultado.
Si observamos la primera columna de la matriz Mi_matriz
, podemos ver que la segunda fila vendrá primero porque el primer elemento de la segunda fila es el más pequeño, y la primera fila con el primer valor más alto será el último en el producción. Podemos pasar una matriz de cualquier tamaño dentro de la función sortrows()
.
La segunda sintaxis de la función sortrows()
se da a continuación:
output = sortrows(matrix, column)
Podemos usar la sintaxis anterior para establecer el número de columna de la matriz de entrada, que se usará para ordenar las filas presentes en la matriz dada. Si no pasamos el número de columna, la función usará la primera columna de la matriz para ordenar las filas.
También podemos pasar múltiples números de columna en un vector, y la función ordenará las filas según el primer número de columna. Si dos o más de los mismos valores están presentes en la columna actual, la función se moverá al siguiente número de columna presente en el vector dado.
Por ejemplo, ordenemos las filas de una matriz usando la segunda y la tercera columna para ordenar. Vea el código a continuación.
clc
clear
My_matrix = [5:10;3:8;7:-1:2]
New_matrix = sortrows(My_matrix,[3 4])
Producción :
My_matrix =
5 6 7 8 9 10
3 4 5 6 7 8
7 6 5 4 3 2
New_matrix =
7 6 5 4 3 2
3 4 5 6 7 8
5 6 7 8 9 10
Si observamos la tercera y cuarta columnas de la matriz New_matrix
, podemos ver que los elementos de la tercera y cuarta columnas están ordenados. Si solo pasamos un solo número de columna con los mismos valores presentes, la función no cambiará la posición de las filas.
La tercera sintaxis de sortrows()
se da a continuación.
output = sortrows(matrix, column, direction)
En la sintaxis anterior, la dirección definirá el orden en el que queremos ordenar las filas, como ascend
para el orden ascendente de las filas y descend
para el orden descendente de las filas. De forma predeterminada, el orden se establece en orden ascendente.
En el caso de varios números de columna, también podemos agregar varias direcciones como un tipo de datos de celda que se usará para cada columna.
Por ejemplo, si definimos dos números de columna y dos direcciones, la primera columna se ordenará según la primera dirección. Si hay los mismos valores, la función se moverá a la segunda columna y ordenará las filas según la segunda dirección.
Por ejemplo, ordenemos la matriz anterior según dos direcciones. Vea el código a continuación.
clc
clear
My_matrix = [5:10;3:8;7:-1:2]
New_matrix = sortrows(My_matrix,[3 4],{'ascend' 'descend'})
Producción :
My_matrix =
5 6 7 8 9 10
3 4 5 6 7 8
7 6 5 4 3 2
New_matrix =
3 4 5 6 7 8
7 6 5 4 3 2
5 6 7 8 9 10
En el resultado anterior, cuando la función llega a los dos mismos valores presentes en la tercera columna, que es 5, se moverá a la cuarta columna y usará los valores 6 y 4 y los clasificará en orden descendente porque la dirección para el número de la segunda columna es descendente. Ahora hablemos de ordenar las filas de una tabla usando la función sortrows()
.
Use la función sortrows()
para ordenar las filas de la tabla en MATLAB
También podemos usar la función sortrows()
para ordenar las filas de una tabla de la misma manera que ordenamos las filas de una matriz anterior. También podemos establecer la variable o columna que queremos usar para clasificar y la dirección o el orden de clasificación.
Por ejemplo, creemos una tabla y ordenemos sus filas según una variable. Vea el código a continuación.
clc
clear
P_Name = {'Smith';'John';'Will';'Jones';'Brown'};
P_Age = [37;47;37;40;49];
P_Height = [72;68;63;67;64];
P_table = table(P_Age,P_Height,'RowNames',P_Name)
Sorted_table = sortrows(P_table,'P_Height','descend')
Producción :
P_table =
5×2 table
P_Age P_Height
_____ ________
Smith 37 72
John 47 68
Will 37 63
Jones 40 67
Brown 49 64
Sorted_table =
5×2 table
P_Age P_Height
_____ ________
Smith 37 72
John 47 68
Jones 40 67
Brown 49 64
Will 37 63
En el código anterior, creamos una tabla de pacientes, incluidos sus nombres, edades y alturas, y ordenamos la tabla según la altura de los pacientes en orden descendente. Podemos ver en la salida que la tabla está ordenada según el orden descendente de las alturas de los pacientes.
También podemos usar múltiples variables y direcciones para ordenar, como en el caso de una matriz. En el caso de múltiples variables, tenemos que pasar los nombres de las variables y direcciones en una celda.
Por defecto, la función sortrows()
utilizará todas las variables y el orden de dirección ascendente para ordenar las filas de la tabla dada. También podemos ordenar las filas según sus nombres usando el argumento RowNames
en lugar del nombre de la variable.
Si faltan ubicaciones en la tabla y queremos ordenar la tabla de acuerdo con las ubicaciones que faltan, podemos usar el argumento MissingPlacement
. Después de eso, podemos pasar su valor como first
para colocar primero el valor faltante, last
para colocar los valores al final y auto
para colocar los elementos primero en orden ascendente y último en caso de orden descendente.
También podemos cambiar el método utilizado para comparar valores utilizando el argumento ComparisonMethod
. Después de eso, tenemos que pasar el nombre del método como real
para valores reales, abs
para valores complejos y auto
, que usará valores reales en caso de entrada real y valores complejos en caso de entrada compleja. .
El método de comparación es útil en el caso de valores complejos. Por ejemplo, si queremos comparar solo la parte real de los valores complejos, podemos usar el método real
, y si queremos tomar el absoluto de los valores complejos, podemos usar el método abs
.
También podemos obtener el índice de la función sortrows()
, que muestra la reordenación de las filas de la matriz o tabla de entrada. La sintaxis de las propiedades anteriores se proporciona a continuación.
[Sorted_table, index] = sortrows(P_table,'RowNames','MissingPlacement','last','ComparisonMethod','abs')
Si queremos ordenar un número específico de filas de la matriz o tabla de entrada, debemos almacenarlas en una matriz o tabla separada y luego usar la función sortrows()
y almacenar el resultado nuevamente en la tabla o matriz original. Consulte este enlace para obtener más detalles sobre la función sortrows()
.