Sortieren eines Arrays in Matlab
In dieser Lektion werde ich Ihnen zeigen, wie Sie Elemente in einem Array (Vektor) unter Verwendung von Matlab sortieren können.
Lassen Sie uns ein praxisnahes Beispiel betrachten.
Erstellen Sie zunächst ein Array mit fünf Elementen.
>> v = [ 4 2 1 6 3 5 ]
v =
4 2 1 6 3 5
In diesem Array liegen ganze Zahlen in einer zufälligen Reihenfolge vor.
Um die Elemente des Arrays in aufsteigender Folge zu ordnen, nutzen Sie die Funktion sort(v).
>> sort(v)
ans =
1 2 3 4 5 6
Durch die Funktion sort(v) werden die Elemente des Arrays vom kleinsten bis zum größten Wert angeordnet.
Um die Elemente in absteigender Reihenfolge zu sortieren, verwenden Sie die Funktion sort() und ergänzen Sie den Parameter 'descend'.
>> sort(v, 'descend')
ans =
6 5 4 3 2 1
Nun sind die Elemente des Arrays vom größten bis zum kleinsten Wert sortiert.
Die Funktion sort() ermöglicht es auch, mehrdimensionale Arrays zu sortieren.
Zur Veranschaulichung erstellen Sie eine 3x3-Matrix.
>> M = [ 1 4 1 ; 2 8 3 ; 5 1 6 ]
M =
1 4 1
2 8 3
5 1 6
Eine Matrix ist ein zweidimensionales Array, dessen Elemente in Zeilen und Spalten angeordnet sind.
Um die Elemente der Matrix zu sortieren, geben Sie einfach sort(M) ein.
>> sort(M)
ans =
1 1 1
2 4 3
5 8 6
Die Funktion sort(M) liefert eine Matrix zurück, in der alle Elemente von klein nach groß sortiert sind.
Wenn Sie das Schlüsselwort "descend" verwenden, um eine Matrix zu sortieren, behandelt Matlab jede Spalte der Matrix als einen separaten Vektor und sortiert deren Elemente.
Geben Sie zum Beispiel sort(M, "descend") ein.
>> sort(M)
ans =
5 8 6
2 4 3
1 1 1
In diesem Fall werden die Spalten der Matrix jeweils separat sortiert.
Betrachten Sie beispielsweise ein Szenario, in dem die erste Spalte eines Arrays die Zahlen 1, 2 und 5 enthält. Matlab würde diese in vertikaler Reihenfolge als 5, 2 und 1 sortieren. Genauso würde Matlab die Elemente 4, 8 und 1 der zweiten Spalte in absteigender Reihenfolge zu 8, 4 und 1 ordnen. Dieses Prinzip wird auf die weiteren Spalten und deren Elemente angewandt.