Gibt es eine Möglichkeit, eine Unterfunktion im Zellenmodus in Matlab aufzurufen?

9

Sagen Sie, ich hätte den folgenden Code:

%Vor%

Wie können Zelle 1 und Zelle 2 mit der am Ende definierten Unterfunktion getestet werden?

Bearbeiten: Im Prinzip führt jede der Zellen in diesem Beispiel einige langwierige Berechnungen durch, deshalb möchte ich sie separat testen und debuggen. Ich verwende Subfunktionen, um allgemeine Funktionen zu abstrahieren und wiederzuverwenden. Da diese Funktionalität bisher nur in dieser speziellen Anwendung verwendet wird, möchte ich foo nicht wirklich in eine separate m-Datei einfügen.

Edit (2): Ich erinnere mich gerade daran, dass ich mich vage erinnern konnte, dass der Zellenmodus nur in Matlab-Skripten und nicht in Funktionsmedateien funktioniert und dass Unterfunktionen und verschachtelte Funktionen in solchen Skripten nicht erlaubt sind. Daher ist das, wonach ich frage, wahrscheinlich nicht möglich.

Obwohl die unten angegebene anonyme Funktionslösung vielleicht etwas restriktiv ist, da sie nur einzelne Ausdrucksfunktionen zulässt, reichte sie tatsächlich für das aus, was ich tun wollte, und daher habe ich sie als Lösung für mein Problem akzeptiert.

>     
snth 02.02.2009, 15:54
quelle

2 Antworten

5

KORREKTUR:

Ich habe Ihre Verwendung des Wortes CELL falsch verstanden. Entschuldigen Sie. Es scheint, dass Sie einfach eine Funktion in der Befehlszeile definieren möchten, ohne sie in einer .m-Datei zu speichern. Dazu können Sie anonyme Funktionen verwenden:

%Vor%

Dann können Sie "foo" wie jede andere Funktion verwenden.

    
gnovice 02.02.2009, 16:02
quelle
0

Die Art und Weise, wie ich normalerweise damit umgehe, ist die Verwendung von dbstop irgendwo innerhalb der Hauptfunktion. Dann haben Sie Zugriff auf alle Funktionen, auf die die Hauptfunktion normalerweise zugreifen würde. Wenn Sie mit dem ML-Editor arbeiten, verwenden Sie einfach einen Haltepunkt beim ersten Aufruf von foo.

Ich hoffe, es hilft.

Dan

    
Dan 03.02.2009 13:34
quelle

Tags und Links