Was ist eine Funktion und wozu nutzt man sie?



Zunächst stellt sich vermutlich zurecht die Frage, was überhaupt eine Funktion in matlab ist? Einfach gesagt ist es nichts anderes als eine Art Automatisierung bzw. Vereinfachung von häufig gebrauchten Rechenoperationen. Dadurch zeigt sich auch schnell der Sinn der Funktionen in matlab, welcher noch deutlicher wird, wenn man dies an einigen Beispielen verdeutlicht.
Bisher haben Sie schon einige der matlab eigenen Funktionen genutzt, um schnell zum Ziel zu kommen ohne es vielleicht zu wissen. Beispielsweise haben Sie in den letzten Aufgaben die Befehle length(x) oder max(size(x)) verwendet, was hervorragende Beispiele für Funktionen sind (Sie geben der Funktion den Vektor x als Argument und sie gibt Ihnen die Anzahl der Komponenten zurück.). Eine weitere wäre z.B. die Funktion sum(x), die nichts anderes macht als alle Komponenten eines Vektors aufzusummieren und Ihnen das Ergebnis zurückzugeben.
Wenn Sie sich zurückerinnern, haben Sie so etwas ähnliches als Skript geschrieben (siehe Aufgabe 5a). Daran sehen Sie schnell, dass es jedoch recht umständlich ist, jedes Mal über dieses Skript vorzugehen. Ebenfalls könnte es passieren, dass Sie in einem größeren Programm an verschiedenen Stellen eine solche Summe ausrechnen müssen, was den Code nur unnötig verlängern würde, wenn man dies an jeder Stelle so nutzen würde. Nutzt man statt des Codes aus dem Skript einfach die Funktion sum(x) lassen sich einige Zeilen sparen, was deutlich ökonomischeres Programmieren zulässt und die Übersichtlichkeit erhöht.

Rechnen

Dies ist natürlich nur ein kleines Beispiel, weil die Funktion an dieser Stelle nicht sehr groß ist, aber im späteren Verlauf macht es einen Unterschied, ob man nur eine Zeile schreiben muss anstatt jedes Mal vielleicht 15 oder 20 Zeilen.
Das Vorgehen über Funktionen ist daher wichtig, da es das modularisierte Programmieren unterstützt, was nichts weiter bedeutet als die Codeinhalte aufzuteilen. Anstatt alles in eine Datei zu schreiben, ist es oft sinnvoller kleinere Funktionen auszulagern, was vor allem der Übersichtlichkeit und einer möglichen Fehlersuche zuträglich ist.
Mittels dieses Kapitels können Sie lernen, wie sie selbst neue Funktionen in den Sprachgebrauch matlabs hinzufügen, um andere Operationen, die sie häufig nutzen, schnell ausführen zu können.

Aufbau und Gestaltung einer Funktion



Um jedoch neue Funktionen zu matlab hinzuzufügen, ist es erst einmal wichtig den entsprechenden Syntax dafür zu lernen. Das heißt es geht vor allem darum zu erkennen, wie genau eine Funktion aufgebaut wird.
Zunächst können Sie wie beim Skript ein leeres m-File öffnen. Um jetzt eine Funktion zu erstellen, müssen Sie den "Funktionskopf" in die erste Zeile schreiben. Dies ist für alle Funktionen erforderlich und sieht wie folgt aus: function[Ausgabe] = Funktionsname (Eingabe).

Rechnen

Das bedeutet mit dem Begriff function in der ersten Zeile einer Datei öffnet man sich eine Funktion, wobei man hinter den Begriff [in eckige Klammern] alle Variablen setzt, die am Ende, wenn sie ausgeführt wird, ausgegeben werden sollen. Mittels des Gleichheitszeichen, weisen wir der Funktion jetzt ihren Namen zu, unter der sie später aufgerufen werden kann und dahinter (in runden Klammern) die Variablen, welche eingegeben werden müssen. Wenn man seine Datei (Funktion) jetzt speichern möchte, setzt matlab den Namen automatisch auf den Funktionsnamen, den man gesetzt hat. Dies ist wichtig und darf nicht verändert werden, da man über diesen Namen die Funktion aufrufen muss.
Nachdem der Kopf gesetzt wurde, muss man das ganze natürlich noch mit einem Inhalt füllen (Funktionskörper), das heißt, wie werden die Ausgabevariablen errechnet bzw. wie die Eingabevariablen genutzt. Dies soll am einfachen Beispiel der Summation einmal nachvollzogen werden. Öffnen Sie dazu das Skript sum.m und eine leere m-File. Wenn Sie ihren Funktionskopf schreiben, müssen Sie sich immer überlegen, wie viele Ein- bzw. Ausgabevariablen es gibt. In diesem Fall haben wir eine Ausgabevariable: die Summe. Hinzu kommt, dass sich eine Eingabevariable ergibt (der Vektor v).

Rechnen

Wenn Sie sich den Kopf gesetzt haben, werden Sie, wie schon bei den Skripten, darauf aufmerksam gemacht (orangene Markierung), dass etwas nicht optimal ist. In diesem Fall sind es die Variablen, welche (sowohl Ein- als auch Ausgabe) bisher nicht verwendet wurden. Nun können Sie mithilfe ihres Skriptes sum.m die Funktion vervollständigen.

Rechnen

Anhand dieses Beispiels können Sie sich leicht klarmachen, wie genau eine Funktion arbeitet. Zunächst werden die Eingabevariablen über den Aufruf im Command Window übergeben. Dazu gibt man dort einfach nur den Namen der Funktion sowie dahinter in runden Klammern die Eingabevariablen ein (Bei mehr als einer Variablen, werden diese jeweils innerhalb der runden Klammern durch ein Komma voneinander getrennt.). Das bedeutet, man übergibt hier einen Vektor in v. Damit hat die Variable v nun einen Wert und kann verwendet werden. Anschließend werden einfach die Zeilen Schritt für Schritt (wie bei einem Skript) abgearbeitet.
Nun haben Sie eine erste kleine Funktion erstellt, welche Ihnen, die Summe eines Vektors ausgibt. Nach diesem Schema sind alle Funktionen in matlab aufgebaut und so lassen sich leicht alle Arten von Funktionen erstellen. Sie benötigen also den Kopf mit der Bennenung von Ein- und Ausgabevariablen, sowie den Namen der Funktion. Im Anschluss können Sie in den weiteren Zeilen ihre Anweisungen (z.B. Rechenoperationen), oder anderes, was mittels der Funktion ausgeführt werden soll, definieren.
Nachdem Sie nun die Grundlagen für das Erstellen gelernt haben, werden im nächsten Teilabschnitt, die Unterschiede zu den Skripten erörtert, das heißt, worauf man achten muss, damit keine leichtfertigen Fehler unterlaufen.

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: