MATLAB Zeilen sortieren

Ammar Ali 18 August 2022
  1. Verwenden Sie die Funktion sortrows(), um Matrixzeilen in MATLAB zu sortieren
  2. Verwendung der Funktion sortrows() zum Sortieren von Tabellenzeilen in MATLAB
MATLAB Zeilen sortieren

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().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB Matrix