7. Funktionen für Vektoren und Matrizen

In diesem Kapitel soll die Verwendung einiger wichtiger Funktionen zur Bearbeitung von Vektoren und Matrizen gezeigt werden. Die genaue Beschreibung der einzelnen Funktionen entnehmen Sie bitte den Hilfeseiten des Hilfesystems.

Um Matrizen oder Vektoren zu erzeugen, bei denen alle Elemente 0 oder 1 sind, werden die beiden Funktionen zeros und ones verwendet. zeros(nr, nc) liefert eine Null-Matrix mit nr Zeilen und nc Spalten. zeros(1, 10) + 1.0 entspricht dem Aufruf ones(1, 10). Die Funktion rand(nr,nc) liefert Zufallszahlen zwischen 0 und 1.

Die Funktion size(x) liefert die Größe der Variablen x. Sie gibt einen 1 * 2 Vektor zurück, der die Anzahl der Zeilen und Spalten seines Arguments enthält. Beispiel:

* m = rand(3, 4)
* size(m)
    3  4

Die Funktion nr liefert die Anzahl der Zeilen einer Matrix oder eines Vektors, die Funktion nc liefert die Anzahl der Spalten und die Funktion len die Anzahl der Elemente. Somit ist len(x) gleich nr(x) * nc(x). Dazu einige Beispiele:

v[len(v):1] = v[1:len(v)]

tauscht die Reihenfolge der Elemente eines Vektors.

Entsprechend tauscht:

m[1:nr(m):1;] = m[nr(m):1;]

die Zeilen einer Matrix, und

m[;1:nc(m)] = m[;nc(m):1]

die Spalten einer Matrix.

Der Aufruf

m = m[; 2:nc(m), 1]

„rotiert“ die Spalten einer Matrix, d.h. packt die erste Spalte der Matrix m hinter die letzte Spalte.

v = v[1:3-1, 3+1:len(v)]

entfernt das 3. Element aus einem Vektor. Um das erste Element zu entfernen, schreibt man

v = v[2:len(v)]

und um das letzte zu entfernen

v = v[1:len(v)-1]

Die Typen von Matrizen können mit der Funktion type erfragt werden. Sie gibt einen der Strings "real", "complex", "string", "undef", oder "function" zurück.

Der kleinste oder größte Zahlenwert in einem Vektor wird mit der Funktion min bzw. max gesucht. Falls das Argument eine Matrix ist, liefern die Funktionen einen Zeilenvektor mit den Minima/Maxima der Spalten des Vektors:

* m = rand(3,3)
* m
    0.3237   0.2887  0.5662
    0.3244   0.3530  0.8207
    0.4934   0.1540  0.3255
* min(m)
    0.3237   0.1540  0.3255
* max(m)
    0.4934   0.3530  0.8207

Doppeltes Anwenden der Funktion liefert den kleinsten/größten Wert aller Elemente der Matrix: min(min(m)) oder max(max(m)).

Mit der Funktion sort können die Elemente eines Vektors oder einer Matrix sortiert werden. Falls das Argument eine Matrix ist, werden die Zeilen der Matrix nach der ersten Spalte sortiert, d.h. die erste Spalte wird sortiert und die Zeilen der Matrix werden komplett ausgetauscht.

* srand() // Random-Generator auf Startwert setzen
    1.0000
* m = rand(3,4)
* m
    0.7744   0.2484  0.1606  0.6082
    0.3925   0.7937  0.4888  0.1344
    0.6235   0.9313  0.6486  0.8489
* sort(m)
    0.3925   0.7937  0.4888  0.1344
    0.6235   0.9313  0.6486  0.8489
    0.7744   0.2484  0.1606  0.6082

Die Funktion find liefert die Indizes aller Werte seines Arguments die ungleich 0 sind. find wird hauptsächlich in Verbindung mit Vergleichsoperatoren verwendet.

* a = [1,7,5,22]
* a <= 5
    1.0000   0.0000  1.0000  0.0000
* find(a <= 5)
    1.0000   3.0000

Die beiden folgenden Zeilen setzen alle Elemente im Vektor a, die kleiner als 5 sind, auf 9.

i = find(a < 5);
a[i] = zeros(1, len(i)) + 9

id-1594549