Sposobem na obejście tego ograniczenia jest przekształcenie moich skryptów w funkcje, które nie pobierają żadnych argumentów (jeśli potrzebuję zmiennych z globalnej przestrzeni nazw, albo jawnie przekazuję je w funkcji, albo używam „evalin”, aby je pobrać).
Następnie możesz zdefiniować wszystkie dodatkowe funkcje, których potrzebujesz w „skrypcie”. To hack, ale odkryłem, że jest dość potężny w przypadkach, w których potrzebuję kilku nietrywialnych funkcji.
EDYCJA: Oto uproszczony przykład. Wszystko to może znajdować się w jednym pliku.
function [] = myScriptAsAFunction()
img = randn(200);
img = smooth(img);
figure(1);
imagesc(img);
axis image;
colorbar;
end
function simg = smooth(img)
simg = img / 5;
end