Hauptinhalt

Lokale Funktionen

Dieses Thema erläutert den Begriff lokale Funktion und demonstriert die Erstellung und Verwendung lokaler Funktionen.

MATLAB® Programmdateien können Code für mehrere Funktionen enthalten. In einer Funktionsdatei wird die erste Funktion der Datei als Hauptfunktion bezeichnet. Diese Funktion ist für Funktionen in anderen Dateien sichtbar oder kann über die Befehlszeile aufgerufen werden. Zusätzliche Funktionen in der Datei werden als lokale Funktionen bezeichnet und können in beliebiger Reihenfolge nach der Hauptfunktion angeordnet sein. Lokale Funktionen sind nur für andere Funktionen innerhalb derselben Datei sichtbar. Sie entsprechen Subroutinen in anderen Programmiersprachen und werden auch als Unterfunktionen bezeichnet.

Sie können lokale Funktionen auch in einer Skriptdatei erstellen. Lokale Funktionen können an beliebigen Stellen in der Datei eingefügt werden, außer in bedingten Kontexten wie if-Ausdrücken oder for-Schleifen. Weitere Informationen finden Sie unter Hinzufügen von Funktionen zu Skripten.

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

Erstellen Sie beispielsweise eine Funktion in einer Datei namens mystats.m, die eine Hauptfunktion mystats und zwei lokale Funktionen, mymean und mymedian, umfasst.

function [avg, med] = mystats(x)
n = length(x);
avg = mymean(x,n);
med = mymedian(x,n);
end

function a = mymean(v,n)
% MYMEAN Example of a local function.

a = sum(v)/n;
end

function m = mymedian(v,n)
% MYMEDIAN Another example of a local function.

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

Die lokalen Funktionen mymean und mymedian berechnen den Durchschnitt bzw. den Median der Eingabeliste. Die Hauptfunktion mystats ermittelt die Länge der Liste n und übergibt diesen Wert den lokalen Funktionen.

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

help mystats>mymean
  mymean Example of a local function.

Lokale Funktionen in der aktuellen Datei haben Vorrang vor Funktionen und Klassenmethoden in anderen Dateien. Das heißt, wenn Sie eine Funktion oder Methode innerhalb einer Programmdatei aufrufen, überprüft MATLAB zunächst, ob es sich um eine lokale Funktion handelt, bevor nach weiteren Hauptfunktionen gesucht wird. Daher können Sie eine alternative Version einer bestimmten Funktion erstellen, während das Original in einer anderen Datei erhalten bleibt.

Alle Funktionen einschließlich lokaler Funktionen verfügen über eigene Workspaces, die vom Basis-Workspace getrennt sind. Lokale Funktionen können nicht auf von anderen Funktionen verwendete Variablen zugreifen, es sei denn, Sie übergeben sie als Argumente. Im Gegensatz hierzu können verschachtelte Funktionen (Funktionen, die vollständig in anderen Funktionen enthalten sind), auf Variablen zugreifen, die von Funktionen verwendet werden, die die verschachtelte Funktion enthalten.

Siehe auch

Themen