Um diese Einschränkung zu umgehen, verwandle ich meine Skripte in Funktionen, die keine Argumente enthalten (wenn ich Variablen aus dem globalen Namespace benötige, übergebe ich sie entweder explizit in der Funktion oder verwende "evalin", um sie abzurufen.)
Dann können Sie alle zusätzlichen Funktionen definieren, die Sie im "Skript" benötigen. Es ist ein Hack, aber ich habe festgestellt, dass er in den Fällen, in denen ich mehrere nicht triviale Funktionen benötige, ziemlich mächtig ist.
EDIT: Hier ist ein vereinfachtes Beispiel. All dies kann sich in einer einzigen Datei befinden.
function [] = myScriptAsAFunction()
img = randn(200);
img = smooth(img);
figure(1);
imagesc(img);
axis image;
colorbar;
end
function simg = smooth(img)
simg = img / 5;
end