03 In Matlab zurechtfinden

In Matlab zurechtfinden

Wie schon erwähnt, am Anfang kann Matlab ziemlich verwirrend sein, weil man mit tausenden Funktionen konfrontiert wird. Man sollte sich davon jedoch nicht entmutigen lassen, sonder versuchen sich auf das wesentliche zu konzentrieren. Die meisten Funktionen braucht man sowieso nie.

Eigentlich sollte euch das hier alles aus der Übung schon bekannt vorkommen, aber hier sind nochmal die absoluten Basics zusammengefasst:

Wenn man Matlab zum ersten Mal aufruft und keine Ahnung hat was vor sich geht:

via GIPHY

Das Hauptfenster

main window of matlab

Alles was hier schwarz eingefärbt ist, ist erstmal unwichtig. Die einzelnen Bestandteile können unterschiedlich angeordnet sein, aber das Command Window sollte immer in der Mitte sein und ist so ziemlich das Wichtigste. Dort kann man Befehle eingeben und einem werden die Ergebnisse dieser Befehle angezeigt.

Rechts davon wird der Workspace angezeigt. Dort sind alle Variablen, Vektoren und Matrizen abgespeichert, mit denen man gerade arbeitet. Darunter befindet sich die Command History, ein Verlauf aller Befehle, die zuletzt ausgeführt wurden. Durch Doppelklick auf einen Befehl wird er erneut ausgeführt.

Auf der linken Seite wird der "Current Folder" angezeigt, also das Arbeitsverzeichnis, in dem Matlab gerade unterwegs ist. Dateien, auf die man zugreifen möchte sowie Skripte, die man ausführen möchte müssen sich in diesem Ordner befinden. Darüber wird der Pfad zu diesem Ordner angezeigt, genau wie im Windows-Explorer.

Ein Wichtiger Knopf in der großen Leiste oben ist "Import Data". Wie das Importieren von Daten funktioniert, wird in einer späteren Lektion erklärt.

Matlab als Taschenrechner

Selbstverständlich beherrscht Matlab die ganzen Grundrechenarten, wie man erwarten würde. Die mathematischen Zeichen +, -, *, / und ^ werden in Matlab als Operatoren bezeichnet.

Hier rechts ist demonstriert, wie genau das funktioniert.

matlab plus minus

Plus und Minus

matlab mal geteilt

Mal und Geteilt

matlab exponent wurzel

Exponent und Wurzel

Variablen

Im nächsten Schritt ersetzen wir die Zahlen unserer Rechnung durch Variablen. Im ersten Beispiel wird erst die Variable "radius" deklariert und bekommt den Wert 5 zugewiesen. Matlab interpretiert "radius" fortan als 5, aber für uns Menschen ist es leichter verständlich das Wort "radius" zu sehen um zu verstehen, was hier berechnet wir. Weiterhin können wir Variablen als das Ergebnis einer Rechnung deklarieren, wie z.B. "umfang" oder "inhalt".

Variablen können auch mehrere einzelne Zahlen enthalten. Hier enthält x alle ganzen Zahlen von 0 bis 5. Die Variable y wird dann als y = 0.5 .* x .^2 + 2 deklariert. Das ist also die Matlab-Herangehensweise, um eine Wertetabelle der Funktion f(x)=0.5*x2+2 zu erstellen.

Der Punkt vor den Operatoren (.* und .^) sagt Matlab, dass es sich um elementweise Berechnungen handelt. D.h. auf jedes Element von x werden die Operatoren einzeln angewendet und jedem Element von x wird ein neues Element in y zugeordnet. Wenn x nur ein Element hätte wäre der Punkt nicht notwendig.

Beispiel für die Verwendung von Variablen

Variablen können auch meherere Zahlen enthalten

Ergebnisse darstellen

Im Gegensatz zu einem Computer kann das menschliche Gehirn mit Zahlen meistens nicht viel anfangen. Deswegen ist es wichtig, dass man die Ergebnisse einer Rechnung graphisch darstellt.

In dem Beispiel rechts sind die beiden Vektoren x und y aus dem Beispiel von vorhin gegeneinander aufgetragen. Somit können wir den Graphen der Funktion begutachten.

Die einfachste Möglichkeit einen solchen Graph mit Matlab zu erzeugen geht über den Befehl plot(x,y). Dabei muss man beachten, dass x und y jeweils die gleiche Anzahl von Elementen haben.

Darüberhinaus gibt es noch zahlreiche weitere Möglichkeiten, Plots zu erzeugen. Welche Möglichkeit die Beste ist hängt dabei ganz davon ab, um welche Art von Daten es sich handelt. Doch dazu mehr in einer späteren Lektion.

Eine Matlab Graphik

Vektoren

Jede Variable die eine Reihe von Zahlen enthält ist ein Vektor. Vektoren mit 2 oder 3 Elementen können wie man das gewohnt ist für Vektoren oder Punkte im zwei- oder dreidimensionalen Raum stehen. Folglich kann man mit Matlab auch all die Vektor-Operationen erledigen, an die man sich hoffentlich noch aus der Schule erinnert, wie z.B. das Kreuz- oder das Skalarprodukt berechnen.

Einen Vektor deklariert man, indem man die Zahlen aus denen er bestehen soll in eckige Klammern fasst. Wenn man die Zahlen durch Leerzeichen trennt, erhält man einen Zeilenvektor. Benutzt man ein Semikolon als Trennzeichen ergibt sich ein Spaltenvektor. Ob man einen Zeilen- oder Spaltenvektor erstellt ist meistens egal, man sollte sich aber auf einen Typ festlegen, sonst bekommt man Probleme.

Indem man einen Apostroph ( ' ) an das Ende eines Vektors stellt wird dieser "transponiert". Ein Zeilenvektor wird dadurch zu einem Spaltenvektor und umgekehrt.

Ein Zeilenvektor

Ein Spaltenvektor

Vektor transponieren

Die Matrix

Eine Matrix erstellt man in Matlab fast genau so wie einen Vektor: Der Inhalt ist wieder durch eckige Klammern eingerahmt und nun hat man logischerweise mehrere Zeilen und Spalten.

Eine Matrix hat m Reihen und n Spalten. Insgesamt hat eine Matrix also m x n Elemente. Jedem Element kann eine Nummer zugeordnet werden, die einem die Position des Elements in der Matrix wiedergibt, wenn man einfach alle Elemente durchgezählt hat. Man spricht dabei vom Index. Matlab zählt zuerst von oben nach unten und dann von links nach rechts. Die wunderschönen roten Zahlen im Bild rechts entsprechen den Indizes der Elemente.

Eine Matrix in Matlab

When you had too much to drink and wake up in the Matrix the next morning: via GIPHY

Mit Matrizen arbeiten

Oft braucht man nur einen bestimmten Teil einer Matrix, z.B. nur eine Spalte oder nur eine Zeile.

Um diesen Teil zu erhalten schreibt man Matrix(m1:m2,n1:n2)
Dabei ist m1 die erste Zeile, die man haben möchte und m2 die letzte Zeile. Analog dazu ist n1 die erste Spalte und n2 die letzte Spalte. Wenn man einfach alle Zeilen oder alle Spalten haben möchte schreibt man stattdessen einfach einen Doppelpunkt. Matrix(:,n1:n2) wählt also die kompletten Spalten von n1 bis n2 aus, da alle Zeilen enthalten sind. Matrix(2,:) würde die gesamte zweite Zeile ausspucken.

Die erste Zeile wird ausgewählt

Die erste Spalte wird ausgewählt

Das fünfte Element der Matrix wird ausgewählt

Ein paar Spalten wurden ausgewählt

Ein Skript: Rechnungen automatisieren

Jetzt geht's ans Eingemachte: Die wahre Stärke von Programmiersprachen liegt darin, dass sie einem erlauben Dinge zu automatisieren! Man schreibt einen Programmcode, der zuverlässig immer wieder die gleichen Aktionen ausführt. Einmal fertig geschrieben muss man den Code im Idealfall nie wieder anschauen und bekommt für jeden Input das gewünschte Ergebnis. Ansonsten müsste man ja jeden Befehl mühselig von Neuem im Command Window eingeben, wenn man etwas nochmal ausrechnen möchte.

Die einfachste Art so ein "Programm" zu schreiben ist ein Skript, welches jedes mal, wenn es aufgerufen wird alle Befehle, die man hineingeschrieben hat, nacheinander ausführt.

In Matlab erstellt man ein neues Skript, indem man oben links auf "New Script" drückt. Dann öffnent sich ein neues Fenster, der Editor, in dem ihr euer Skript schreiben könnt. Wenn ihr das Skript fertig geschrieben habt könnt ihr oben im Editor auf den grünen Pfeil ("Run") drücken und euer Skript wird ausgeführt.

Für die meisten eurer Hausaufgaben werdet ihr genau so ein Skript schreiben müssen. Oder ihr lasst euch eben einfach das Skript von jemand anderem geben.
Werte anpassen, auf Run drücken, zurücklehnen!

Ein simples Skript

Das Ergebnis des Skripts

In dem Skript oben werden verschiedene Kreis- und Kugelparameter für einen vorgegebenen Radius berechnet. Jetzt braucht man nur noch den Wert für "radius" am Anfang ändern und bekommt das entsprechende Ergebnis, ohne alle Formeln neu eingeben zu müssen!

Der Text in grün sind Kommentare, die von Matlab beim ausführen des Skripts ignoriert werden.