MATLAB Zeilen sortieren
-
Verwenden Sie die Funktion
sortrows()
, um Matrixzeilen in MATLAB zu sortieren -
Verwendung der Funktion
sortrows()
zum Sortieren von Tabellenzeilen in MATLAB
In diesem Tutorial wird das Sortieren von Zeilen in einer Matrix mit der Funktion sortrows()
in MATLAB behandelt. Bei der Datenanalyse und -verarbeitung ist das Sortieren von wesentlicher Bedeutung, da es die Analyse und Verarbeitung von Daten erleichtert, wenn sie sortiert sind.
Wenn wir zum Beispiel eine Patiententabelle in einem Krankenhaus haben und eine bestimmte Person finden möchten und die Tabelle nicht sortiert ist, müssen wir alle Daten durchgehen, um eine Person zu finden. Wenn die Tabelle jedoch nach dem Anfangsbuchstaben der Patientennamen sortiert ist, können wir die Person leicht erkennen, da wir jetzt nur noch die Namen ab einem bestimmten Buchstaben betrachten müssen.
Verwenden Sie die Funktion sortrows()
, um Matrixzeilen in MATLAB zu sortieren
Wir können die Funktion sortrows()
von Matlab verwenden, um die in einer Matrix vorhandenen Zeilen zu sortieren. Die erste Syntax der Funktion sortrows()
ist unten angegeben:
output = sortrows(matrix)
Die obige Syntax sortiert die Zeilen in der gegebenen Matrix nach den Elementen der ersten Spalte oder dem ersten Element jeder Zeile in aufsteigender Reihenfolge. Wenn zwei oder mehr Zeilen dasselbe erste Element haben, vergleicht die Funktion ihre zweiten Elemente und so weiter.
Lassen Sie uns beispielsweise die Zeilen in einer Matrix mit der obigen Syntax sortieren. Siehe Code unten.
clc
clear
My_matrix = [5:10;2:7;3:8]
New_matrix = sortrows(My_matrix)
Ausgabe:
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
Wir haben im obigen Code eine 3-mal-6-Matrix erstellt und ihre Zeilen sortiert. Wir können die beiden Matrizen in der Ausgabe vergleichen, um das Ergebnis zu überprüfen.
Wenn wir uns die erste Spalte der Matrix Meine_Matrix
ansehen, können wir sehen, dass die zweite Zeile an erster Stelle steht, weil das erste Element der zweiten Zeile das kleinste ist und die erste Zeile mit dem höchsten ersten Wert an letzter Stelle steht Ausgang. Wir können eine Matrix beliebiger Größe innerhalb der Funktion sortrows()
übergeben.
Die zweite Syntax der Funktion sortrows()
ist unten angegeben:
output = sortrows(matrix, column)
Wir können die obige Syntax verwenden, um die Spaltennummer aus der Eingabematrix festzulegen, die beim Sortieren der in der gegebenen Matrix vorhandenen Zeilen verwendet wird. Wenn wir die Spaltennummer nicht übergeben, verwendet die Funktion die erste Spalte der Matrix zum Sortieren der Zeilen.
Wir können auch mehrere Spaltennummern in einem Vektor übergeben, und die Funktion sortiert die Zeilen nach der ersten Spaltennummer. Wenn zwei oder mehr gleiche Werte in der aktuellen Spalte vorhanden sind, wechselt die Funktion zur nächsten Spaltennummer, die im angegebenen Vektor vorhanden ist.
Lassen Sie uns zum Beispiel die Zeilen einer Matrix sortieren, indem wir die zweite und dritte Spalte zum Sortieren verwenden. Siehe Code unten.
clc
clear
My_matrix = [5:10;3:8;7:-1:2]
New_matrix = sortrows(My_matrix,[3 4])
Ausgabe:
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
Wenn wir uns die dritte und vierte Spalte der Matrix Neue_Matrix
ansehen, sehen wir, dass die Elemente der dritten und vierten Spalte sortiert sind. Wenn wir nur eine einzelne Spaltennummer mit denselben vorhandenen Werten übergeben, ändert die Funktion die Position der Zeilen nicht.
Die dritte Syntax von sortrows()
ist unten angegeben.
output = sortrows(matrix, column, direction)
In der obigen Syntax definiert die Richtung die Reihenfolge, in der wir die Zeilen sortieren möchten, wie ascend
für die aufsteigende Reihenfolge der Zeilen und descend
für die absteigende Reihenfolge der Zeilen. Standardmäßig ist die Reihenfolge auf aufsteigend eingestellt.
Bei mehreren Spaltennummern können wir auch mehrere Richtungen als Zellendatentyp hinzufügen, die für jede Spalte verwendet werden.
Wenn wir beispielsweise zwei Spaltennummern und zwei Richtungen definieren, wird die erste Spalte nach der ersten Richtung sortiert. Bei gleichen Werten springt die Funktion in die zweite Spalte und sortiert die Zeilen entsprechend der zweiten Richtung.
Lassen Sie uns zum Beispiel die obige Matrix nach zwei Richtungen sortieren. Siehe Code unten.
clc
clear
My_matrix = [5:10;3:8;7:-1:2]
New_matrix = sortrows(My_matrix,[3 4],{'ascend' 'descend'})
Ausgabe:
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
Wenn die Funktion in der obigen Ausgabe zu den beiden gleichen Werten in der dritten Spalte gelangt, nämlich 5, wechselt sie in die vierte Spalte und verwendet die Werte 6 und 4 und sortiert sie in absteigender Reihenfolge, da die Richtung für die zweite Spaltennummer ist absteigend. Lassen Sie uns nun über das Sortieren der Zeilen einer Tabelle mit der Funktion sortrows()
sprechen.
Verwendung der Funktion sortrows()
zum Sortieren von Tabellenzeilen in MATLAB
Wir können auch die Funktion sortrows()
verwenden, um die Zeilen einer Tabelle auf die gleiche Weise zu sortieren, wie wir oben die Zeilen einer Matrix sortiert haben. Wir können auch die Variable oder Spalte, die wir zum Sortieren verwenden möchten, und die Richtung oder Reihenfolge der Sortierung festlegen.
Lassen Sie uns zum Beispiel eine Tabelle erstellen und ihre Zeilen nach einer Variablen sortieren. Siehe Code unten.
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')
Ausgabe:
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
Im obigen Code haben wir eine Tabelle mit Patienten erstellt, einschließlich ihrer Namen, ihres Alters und ihrer Größe, und wir haben die Tabelle nach der Größe der Patienten in absteigender Reihenfolge sortiert. Wir können in der Ausgabe sehen, dass die Tabelle nach der absteigenden Reihenfolge der Körpergröße der Patienten sortiert ist.
Wir können auch mehrere Variablen und Richtungen zum Sortieren verwenden, genau wie im Fall einer Matrix. Bei mehreren Variablen müssen wir die Variablen- und Richtungsnamen in einer Zelle übergeben.
Standardmäßig verwendet die Funktion sortrows()
alle Variablen und die Reihenfolge in aufsteigender Richtung, um die Zeilen der angegebenen Tabelle zu sortieren. Wir können die Zeilen auch nach ihren Namen sortieren, indem wir anstelle des Variablennamens das Argument RowNames
verwenden.
Wenn wir fehlende Platzierungen in der Tabelle haben und die Tabelle nach den fehlenden Platzierungen sortieren möchten, können wir das Argument MissingPlacement
verwenden. Danach können wir seinen Wert wie first
übergeben, um den fehlenden Wert zuerst zu platzieren, last
, um die Werte am Ende zu platzieren, und auto
, um die Elemente in aufsteigender Reihenfolge an erster und in absteigender Reihenfolge an letzter Stelle zu platzieren.
Wir können auch die Methode ändern, die zum Vergleichen von Werten verwendet wird, indem wir das Argument ComparisonMethod
verwenden. Danach müssen wir den Namen der Methode übergeben, z. B. real
für reelle Werte, abs
für komplexe Werte und auto
, das bei reellen Eingaben reelle Werte und bei komplexen Eingaben komplexe Werte verwendet .
Bei komplexen Werten ist die Vergleichsmethode hilfreich. Wenn wir beispielsweise nur den reellen Teil der komplexen Werte vergleichen möchten, können wir die Methode real
verwenden, und wenn wir den Absolutwert der komplexen Werte nehmen möchten, können wir die Methode abs
verwenden.
Wir können den Index auch von der Funktion sortrows()
erhalten, die die Neuanordnung der Zeilen der Eingabematrix oder -tabelle anzeigt. Die Syntax der obigen Eigenschaften ist unten angegeben.
[Sorted_table, index] = sortrows(P_table,'RowNames','MissingPlacement','last','ComparisonMethod','abs')
Wenn wir eine bestimmte Anzahl von Zeilen aus der Eingabematrix oder -tabelle sortieren möchten, müssen wir sie in einer separaten Matrix oder Tabelle speichern und dann die Funktion sortrows()
verwenden und das Ergebnis wieder in der ursprünglichen Tabelle oder Matrix speichern. Überprüfen Sie diesen Link für weitere Details über die Funktion sortrows()
.