In MATLAB kann ich mehrere Funktionen in einer Datei definieren, wobei nur die erste definierte Funktion außerhalb dieser Datei sichtbar ist. Alternativ kann ich jede Funktion in eine eigene Datei einfügen und sie alle global über den Pfad sichtbar machen. Ich schreibe eine menügesteuerte Anwendung, bei der jeder Menüeintrag eine andere Funktion ausführt. Derzeit befinden sich alle in einer großen Datei, die immer schwieriger zu navigieren ist. Ich möchte Gruppen verwandter Funktionen in separate Dateien einfügen.
Ich denke, ich kann so etwas machen, indem ich alle untergeordneten Funktionen in ein separates Verzeichnis lege und dann das Verzeichnis zum Pfad in meiner Elternfunktion hinzufüge, aber das fühlt sich ein wenig chaotisch und unelegant an.
Kann jemand einen besseren Vorschlag machen?
Hinweis: Ich bin mit MATLAB 2006 am vertrautesten, aber ich bin gerade dabei, auf MATLAB 2009 zu aktualisieren.
Ein Vorschlag, der es vermeiden würde, den MATLAB-Pfad zu ändern, ist die Verwendung von a privates Funktionsverzeichnis . Zum Beispiel:
Nehmen wir an, Sie haben eine Funktion namens test.m
im Verzeichnis \MATLAB\temp\
(die sich bereits im MATLAB-Pfad befindet). Wenn lokale Funktionen in test.m
in ihren eigenen m-Dateien gespeichert werden sollen und nur test.m
Zugriff darauf haben soll, erstellen Sie zuerst ein Unterverzeichnis in \MATLAB\temp\
namens private
. Setzen Sie dann die einzelnen lokalen Funktions-M-Dateien von test.m
in dieses private
-Unterverzeichnis.
Das private
-Unterverzeichnis muss nicht zum MATLAB-Pfad hinzugefügt werden (eigentlich sollte nicht zum Pfad hinzugefügt werden, damit die Dinge ordnungsgemäß funktionieren). Nur die Datei test.m
und andere m-Dateien im Verzeichnis direkt über dem Unterverzeichnis private
haben Zugriff auf die enthaltenen Funktionen. Mit privaten Funktionen können Sie das Verhalten von lokalen Funktionen (dh begrenzter Umfang, Überladen von Funktionen usw.), ohne dass alle Funktionen in dieselbe m-Datei geschrieben werden müssen (was bei einigen Anwendungen sehr groß werden kann).
Sie können Unterordner verwenden, die mit "+" beginnen, um Funktionen in Namespaces zu unterteilen.
Zum Beispiel:
Platzieren Sie eine Funktion "bar" im Ordner "+ foo"
%Vor%Diese Funktion kann wie folgt verwendet werden:
%Vor%Weitere Informationen finden Sie hier:
Tags und Links matlab