Zum Inhalt

Matrizen

Bearbeiten

Eine Matrix lässt sich auf mehrere Arten einfügen: über das Menü Einfügen > Matrix..., mit der Tastenkombination CTRL+M, über die Palette Matrices (Matrix 3x3) oder durch Eingabe der Funktion mat(. Sie erhalten dann die 3x3-Vorlage oder ein Dialogfeld zur Eingabe der Zeilen- und Spaltenzahl. Weisen wir dem Variablennamen A eine Matrix mit den Abmessungen 3 (Zeilen) x 3 (Spalten) zu. Drücken Sie zum Beispiel A: und dann CTRL+M. Die Matrixvorlage mit 3x3 leeren Platzhaltern erscheint.

3x3-Matrixvorlage

Wenn Sie es sich mit den Abmessungen anders überlegen, können Sie sie jederzeit ändern. Klicken Sie einfach innerhalb der Matrix in die rechte untere Ecke. Es erscheint ein schwarzes Quadrat mit einer senkrechten und einer waagerechten Linie. Ziehen Sie mit der linken Maustaste (der Mauszeiger ändert sein Aussehen) und korrigieren Sie die Abmessungen. Das geht auch, wenn die Platzhalter nicht leer sind.

Abmessungen der Matrix ändern

Füllen wir nun die Platzhalter wie im folgenden Bild aus. Zeigen wir mit der Maus auf die Matrix, erscheint ein Tooltip. Das ist die symbolische Darstellung der Matrix. Wie Sie sehen, werden reelle Zahlen als Brüche dargestellt, und es gibt zwei undefinierte Variablen (a und b, ohne Zahlenwerte).

Ausgefüllte Matrix mit symbolischen Werten

Verwendung: symbolisch oder numerisch

Weisen wir den Variablen a und b vor der Definition der Matrix Werte zu, ergibt sich:

Zugewiesene Zahlenwerte

Das Ergebnis der Matrix A können wir symbolisch (Operator →) oder numerisch (Operator = ) darstellen. Beachten Sie den Unterschied:

Symbolisches und numerisches Ergebnis

Elemente auslesen

Ein einzelnes Matrixelement lässt sich außerdem mit der Funktion el darstellen. Drücken Sie el(A, oder A[. Sie sehen:

Ein Matrixelement auslesen

Elementen Werte zuweisen

Jetzt können Sie eine einzelne ganze Zahl (Vektor) oder zwei ganze Zahlen (Matrix) eingeben, um auf Elemente eines Vektors oder einer Matrix zuzugreifen. Drücken Sie hier (Matrix) 3,1→ oder 3,1= . Der Wert von A in der dritten Zeile und ersten Spalte erscheint (der kleinste Zeilen- und Spaltenindex ist 1).

Ein Matrixelement zuweisen

Vektoren

SMath behandelt eine Spaltenmatrix als Vektor. Vektorelemente brauchen nur einen Index. Hier ein Beispiel (Zeilenmatrizen brauchen weiterhin zwei Indizes, mit 1 als erstem).

Indizierung von Vektoren

Fortgeschritten

Zu beachten ist, dass die Elemente einer Matrix unterschiedliche Datentypen haben können (Zahlen, Text, Einheiten). Hier einige einfache Beispiele dafür.

Matrixelemente unterschiedlicher Typen

Beachten Sie die Funktionen row und col, mit denen sich eine einzelne Zeile bzw. Spalte auslesen lässt.

SMath unterstützt auch verschachtelte Matrizen, d. h. ein Matrixelement kann selbst eine Matrix sein. Siehe das nächste Beispiel.

Verschachtelte Matrix

Die einzelnen Elemente werden wie zuvor dargestellt.

Element einer verschachtelten Matrix

Matrizen sind in SMath dynamische Arrays und können ihre Abmessungen ändern. So liefert die Funktion matrix eine mit Nullen gefüllte Matrix. Sehen Sie, wie Sie dasselbe erreichen, indem Sie dem Element z3 4 den Wert null zuweisen.

Mit Nullen gefüllte Matrix

Versuchen Sie nun zum Beispiel z5 5:=2

Neben Matrix- und Vektorvariablen gibt es auch Matrix- und Vektorfunktionen.

Matrix- und Vektorfunktionen

Die Funktion f hat ein einziges Argument und gibt einen Vektor mit drei Elementen zurück. Das Argument kann ein Skalar, ein Vektor oder eine Matrix sein. Probieren Sie es aus. Die Funktion ff erwartet einen Vektor mit zwei Elementen, und die Funktion F erwartet zwei Argumente und gibt eine 2x2-Matrix zurück. Experimentieren Sie damit.

Beim Umgang mit Matrizen kommen trotz der vielen Matrix- und Vektoroperatoren und -funktionen früher oder später Schleifen ins Spiel. Meist werden einfache, doppelte oder verschachtelte for-Schleifen verwendet. Hier ein einfaches Beispiel:

for-Schleife über eine Matrix

Eine leere Matrix mit festen Abmessungen initialisieren Sie mit matrix(rows,cols), wobei eines der beiden Argumente 0 ist.

Eine leere Matrix initialisieren

Diese Seite basiert auf einem Artikel aus dem alten Wiki von Davide Carpi.