Hauptinhalt

Hinzufügen von Funktionen zu Skripten

MATLAB®-Skripte, einschließlich Live-Skripte, können Code zur Definition von Funktionen enthalten. Diese Funktionen werden als lokale Funktionen bezeichnet. Lokale Funktionen sind nützlich, wenn Sie Code innerhalb eines Skripts wiederverwenden möchten. Durch das Hinzufügen lokaler Funktionen können Sie die Erstellung und Verwaltung separater Funktionsdateien vermeiden. Sie sind auch nützlich, um mit Funktionen zu experimentieren, die je nach Bedarf einfach hinzugefügt, geändert und gelöscht werden können.

Erstellen eines Skripts mit lokalen Funktionen

Um ein Skript oder Live-Skript mit lokalen Funktionen zu erstellen, wechseln Sie zur Registerkarte Home und wählen Sie New Script oder New Live Script. Fügen Sie anschließend den Code zur Datei hinzu. Jede lokale Funktion muss mit einer eigenen Funktionsdefinitionsanweisung beginnen und mit dem Schlüsselwort end enden. Die Funktionen können in beliebiger Reihenfolge auftreten und an beliebiger Stelle im Skript definiert werden.

Vor R2024a: Lokale Funktionen in Skripten müssen am Ende der Datei definiert werden, nach der letzten Zeile des Skriptcodes.

Erstellen Sie beispielsweise ein Skript mit dem Namen mystats.m.

edit mystats

Fügen Sie in die Datei zwei lokale Funktionen ein: mymean und mymedian. Das Skript mystats deklariert ein Array, bestimmt dessen Länge und berechnet anschließend mithilfe der lokalen Funktionen mymean und mymedian den Durchschnitt und den Median des Arrays.

x = 1:10;
n = length(x);

function a = mymean(v,n)
% MYMEAN Local function that calculates mean of array.

    a = sum(v)/n;
end

function m = mymedian(v,n)
% MYMEDIAN Local function that calculates median of array.

    w = sort(v);
    if rem(n,2) == 1
        m = w((n + 1)/2);
    else
        m = (w(n/2) + w(n/2 + 1))/2;
    end
end

avg = mymean(x,n);
med = mymedian(x,n);

Ausführen von Skripten mit lokalen Funktionen

Um ein Skript oder Live-Skript auszuführen, das lokale Funktionen enthält, klicken Sie auf der Registerkarte Editor oder Live Editor auf die Schaltfläche Run. Sie können den Namen des gespeicherten Skripts auch in das Befehlsfenster eingeben.

Um einen einzelnen Abschnitt innerhalb eines Skripts oder Live-Skripts auszuführen, positionieren Sie den Cursor innerhalb des Abschnitts und verwenden Sie die Schaltfläche Run Section (erfordert R2017b oder höher für .m-Dateien). In Live-Skripten oder Funktionen können Sie nur Abschnitte ausführen, die vor den lokalen Funktionsdefinitionen stehen.

Einschränkungen für lokale Funktionen und Variablen

Lokale Funktionen sind nur innerhalb der Datei sichtbar, in der sie definiert sind. Sie sind für Funktionen in anderen Dateien nicht sichtbar und können nicht über das Befehlsfenster aufgerufen werden.

Lokale Funktionen in der aktuellen Datei haben Vorrang vor Funktionen in anderen Dateien. Das heißt, wenn Sie eine Funktion innerhalb eines Skripts aufrufen, überprüft MATLAB zunächst, ob es sich um eine lokale Funktion handelt, bevor an anderen Stellen nach der Funktion gesucht wird. Dies ermöglicht es Ihnen, eine alternative Version einer bestimmten Funktion zu erstellen, während das Original in einer anderen Datei erhalten bleibt.

Skripte erstellen und greifen auf Variablen im Basis-Workspace zu. Lokale Funktionen verfügen, wie alle anderen Funktionen auch, über eigene Workspaces, die vom Basis-Workspace getrennt sind. Lokale Funktionen können nicht auf Variablen im Workspace anderer Funktionen oder im Basis-Workspace zugreifen, es sei denn, Sie übergeben sie als Argumente.

Skripte, die lokale Funktionen enthalten, müssen außerhalb einer Funktion ausführbaren Code enthalten.

Hilfe zu lokalen Funktionen aufrufen

Obwohl Sie eine lokale Funktion nicht über die Befehlszeile oder aus Funktionen in anderen Dateien aufrufen können, können Sie mit dem Befehl help auf deren Hilfe zugreifen. Geben Sie die Namen sowohl des Skripts als auch der lokalen Funktion an und trennen Sie diese mit dem Zeichen >.

Beispiel:

help mystats>mymean
 mymean Local function that calculates mean of array.

Siehe auch

Themen