Freitag, 18. September 2015

Matlab Tutorial Teil 4 - Skripte und Funktionen

Um oft benutzten Code nicht jedes mal neu eingeben zu müssen haben wir in Matlab die Möglichkeit diesen in Skripte und Funktionen auszulagern.
Diese werden in Dateien mit der Endung .m gespeichert. Skripte sind einfach Sammlungen von Codezeilen, während Funktionen dazu noch einen Rückgabewert liefern.
Diese Dateien können wir bequem aus der Matlab Entwicklungsumgebung anlegen: Hierzu geben wir edit Name.m ein und bestätigen den Befehl. Daraufhin öffnet sich ein Editor mit der Datei.
Als Beispiel erstellen wir das Skript MyScript.m mit folgendem Inhalt:

A = rand(100);
d = det(A)

Es wird also eine zufällige 100 x 100 Matrix A angelegt und die Determinante d berechnet.
In Matlab können wir nun das Skript durch Eingeben des Namens MyScript aufrufen. Daraufhin wird das Skript ausgeführt und die Variable d ausgegeben. Was ausgegeben wird können mir mit dem Zeichen ";" steuern. Beenden wir eine Zeile mit dem Semikolon, wird diese ohne Ausgabe ausgeführt. Lassen wir dieses weg, wird das Ergebnis der Operation ausgegeben. Lassen wir also in der 1. Zeile des Skripts das Semikolon weg, wird die komplette Matrix ebenfalls ausgegeben.

Als zweites Beispiel legen wir nun eine Funktion an, welche den Durchschnitt über die übergebenen Werte berechnet und zurückgibt. Dafür geben wir edit MyFunction.m ein.
Als Inhalt geben wir ein:

function [y] = MyFunction(x)
y = sum(x);
y = y / numel(x);
end

Wie man sieht, beginnt eine Funktionsdeklaration mit dem Schlüsselwort function und endet mit end. In eckigen Klammern geben wir dann zuerst die Rückgabeparameter an - hier wird nur y zurückgegeben, mehrere Parameter werden einfach per Komma getrennt. Nach dem Gleichheitszeichen geben wir den Namen der Funktion (welcher mit dem Dateinamen übereinstimmten sollte) sowie die Eingabeparameter in runden Klammern an - hier nur x.
In der Funktion summieren wir dann über x (wir erwarten also einen Vektor) und teilen durch die Anzahl der Elemente in x. Das Ergebnis gibt die Funktion in y zurück. In Matlab können wir dann die Funktion wie folgt aufrufen und ihren Rückgabewert benutzten: test = MyFunction([1,2,3,])
(Hinweis: In Matlab lässt sich der Durchschnittswert natürlich einfacher berechnen - zum Beispiel mit der vordefinierten Funktion mean(). Ich habe dieses Beispiel nur zur Erläuterung genommen.)

Keine Kommentare:

Kommentar veröffentlichen