Im vorangehenden Unterkapitel haben Sie gelernt, was es heißt Variablen in matlab zu nutzen und wie man diese definiert. Bisher wurden jedoch nur einzelne Zahlen in den Speicher gelegt. Wie Sie von der Einleitung wissen, steht matlab für MATrixLABoratory. Das heißt das Programm interpretiert jede Eingabe als eine Matrix. Das bedeutet, das selbst eine Zuweisung wie im letzten Kapitel (z.B. m = 8) eine Matrix darstellt, welche in diesem Fall die Dimension 1x1 besitzt. Somit sind Zeilenvektoren nur Matrizen der Dimension 1xn und Spaltenvektoren Matrizen der Dimension nx1.
Die Frage ist nun, wie man solche Objekte in matlab implementieren kann. Dafür gibt es verschiedene Möglichkeiten. Zunächst schauen wir uns die verschiedenen Möglichkeiten an, um einen Zeilenvektor, also eine 1xn Matrix zu definieren. Wie schon zuvor müssen wir wieder eine Zuweisung vornehmen, das heißt in der Form a = ... schreiben. Für den Zeilenvektor heißt das jetzt wir schreiben a = [1,2,3,4]. Die Kommas trennen also die einzelnen Einträge unseres Zeilenvektors (1xn Matrix). Alternativ kann man die einzelnen Elemente auch einfach mit einem Leerzeichen trennen, also z.B. b = [3 4 5 6] schreiben.
Nun kann es aber auch passieren, dass man größere Vektoren definieren soll, wo man nicht alle Einträge einzeln eingeben möchte. Für eine solche Folge von Zahlen kann man einen Vektor über c = 1:1:4 definieren. Dieses Eingabeformat lässt sich wie folgt interpretieren: Die erste Zahl kennzeichnet den Startwert, die zweite Zahl gibt die Schrittweite vor und die dritte Ziffer die Endzahl. Einfachhalber kann man im Falle der Schrittweite 1 auch d = 3:6 schreiben. In diesem Falle interpretiert matlab das ganze nur als Start- und Endwert und setzt die Schrittweite automatisch auf 1. Definieren Sie sich mit diesen Varianten ein paar Vektoren, wie in Bild 1.

Rechnen

Neben den Zeilenvektoren gibt es auch noch die Spaltenvektoren (nx1 Matrizen). Diese lassen sich einfach über s = [1;2;3;4] initialisieren. Das heißt trennt man die Zahlen mit einem Semikolon statt mit einem Komma oder Leerzeichen, erhält man einen Spaltenvektor.
Nachdem man einmal ein paar Zeilen- und Spaltenvektoren definiert hat, ist die Erzeugung einer Matrix naheliegend. Da diese aus mehreren Zeilen und Spalten besteht, kombiniert man seine Kenntnisse. Somit ergibt sich eine Matrix mit A = [1 2 3 4 ; 3 4 5 6]. Das heißt man erhält eine Matrix, wenn mehrere gleichlange Zeilenvektoren mittels einem Semikolon getrennt werden. Dies ist unbedingt einzuhalten, da matlab zeilenweise arbeitet, das heißt das Programm arbeitet, so wie man ein Buch liest. Zeile für Zeile.

Rechnen

Wenn man sich einmal die verschiedenen Matrizen definiert hat, gibt es natürlich noch einige interessante Befehle im Umgang mit diesen Elementen zu klären.

  1. Transponieren:
    Nun kann man Spalten- und Zeilenvektoren natürlich auch ganz einfach ineinander überführen indem man sie transponiert. (Das heißt aus einer nx1 Matrix eine 1xn Matrix machen.) So könnte man den vorhin definierten Spaltenvektor transponieren indem man s = s' schreibt. Hier haben wir wieder eine Zuweisung. s ist matlab aktuell als Spaltenvektor bekannt. Mit dieser Formulierung überschreiben wir den aktuellen Wert der Variable s mit dem Wert von s'. Bestätigt man diesen Befehl so sieht man, dass s jetzt als Zeilenvektor mit den gleichen Werten ausgegeben wird (Man kann den transponierten Vektor auch einer anderen Variablen zuweisen z.B. t = s'). Das ganze ist natürlich auch für jede beliebige mxn Matrix möglich für die man durch das transponieren dann eine nxm Matrix erhält.
  2. Rechnen

  3. Dimension:
    Da die ganze Zeit über die Größe der Matrizen gesprochen wird, ist es natürlich auch interessant zu wissen, wie man diese in matlab für seine Variablen abrufen kann. über den Befehl size(A) gibt mir das Programm zwei Zahlen zurück, wobei erstere für die Zeilen- und zweitere für die Spaltenanzahl steht. Ebenso besteht die Möglichkeit sich über den Befehl length(a) die Länge der jeweiligen Variable ausgeben zu lassen, was einfach die größere der beiden Zahlen ist, welche man über size(a) erhält. Alternativ kann man dies auch über die Abfrage max(size(a)) ermitteln, da es über den size Befehl die Dimension und von den beiden Werten dann den größeren ausgibt.
  4. Rechnen

  5. Zugriff auf einzelne/bestimmte Komponenten:
    Definiert man einen Vektor (oder eine Matrix) so schreibt man die Elemente, wie oben gesehen in eckige Klammern. Möchte man nun allerdings auf ein bestimmtes Element zugreifen, kann man dies über den Befehl b(3) tun. Mit dem Namen der Variablen und der Zahl in runden Klammern dahinter, wird gefragt, was der Wert des Vektors b an der dritten Stelle ist. Da ich bei einem Vektor entweder nur eine Zeile oder eine Spalte habe, erkennt matlab automatisch, welchen Wert er abgreifen muss. Handelt es sich jedoch um eine Matrix sollte man die gezielte Position des gesuchten Elements angeben, das heißt z.B. A(1,3). Damit sucht er in der ersten Zeile und dritten Spalte nach einem Wert und gibt diesen aus. Durch bisher bekannte Befehle kann man somit auch einzelne Komponenten des Vektors ändern indem man beispielsweise b(3) = 7 eingibt.
    Des Weiteren sind die matlab Befehle max und min für Matritzen jeder Art interessant, denn gibt man max(a) ein so erhält man als Antwort die größte Zahl im jeweiligen Objekt (min(a) gibt die kleinste Zahl aus).
  6. Rechnen

  7. Vorgegebene Befehle zur Matrixerzeugung:
    Für spätere Aufgaben ist es interessant zu wissen, wie man sich z.B. eine Matrix mit lauter Nullen oder Einsen erzeugt, bzw. wie man zu einer Einheitsmatrix kommt. Mit B = zeros(3,4) würde man eine 3x4 Matrix erhalten in der nur Nullen stehen. Gibt man stattdessen B = ones(3,4) würde an jeder Stelle eine 1 auftauchen. Und mit B = eye(3,4) würden überall Nullen stehen außer auf der Hauptdiagonale, wo Einsen auftauchen würden.
  8. Rechnen

  9. Rechenoperationen:
    Zu beachten ist, dass es für Vektoren bzw. Matrizen bestimmte Rechenregeln gibt. Die Addition und Subtraktion erfolgt einfach komponentenweise solange die beiden Elemente die gleiche Dimension haben. Bei der Multiplikation übt matlab automatisch das Skalarprodukt bzw. das Vektor-Matrix oder Matrix-Matrixprodukt aus. Das heißt A*B wäre nur dann ausführbar, wenn die Spaltenanzahl von A gleich der Zeilenanzahl von B entspricht. Dies zeigt deutlich das matlab auch einfache Zahlen als 1x1 Matrix interpretieren kann, da dort diese Bedingung für die Multiplikation gegeben ist. Dennoch lassen sich ähnlich wie bei Addition und Subtraktion auch die Multiplikation, die Division oder z.B. das Quadrieren komponentenweise ausführen, was für Vektoren und Matrizen von Bedeutung ist. Dies lässt sich erreichen indem man dem Operationszeichen einen Punkt voranstellt, das heißt a.*b, a./b oder a.^2. Dabei ist zu beachten, dass beide Elemente die gleiche Dimension haben müssen.
  10. Rechnen

News

01. April 2015 | Grundversion verfügbar

Inhalt:

Marcus Bether, Michael Klöppel

Technische Umsetzung:

Marcus Bether, Michael Klöppel

Kontakt:

Jörg Wensch
E-Mail: