Lubię używać cell mode zamiast łamać punkty podczas pisania/debugowania funkcji.Jak ustalić, czy kod jest wykonywany jako funkcja lub przy użyciu trybu komórki?
Jak określić w czasie wykonywania, czy aktualnie wykonywany kod jest wykonywany jako funkcja, czy w trybie komórkowym?
Bonus Points Jeśli można wymyślić function
że wie, że została wywołana z innej funkcji lub z komórki.
Przykładem tego, kiedy może być przydatny, jest sytuacja, w której chcesz inaczej załadować dane podczas wykonywania funkcji lub jeśli chcesz utworzyć plotery do debugowania. Staje się trudnością komentowanie określonych linii podczas przełączania między wykonywaniem jako komórką lub funkcją.
function doSomethingAwesome(inputs)
%%
if executingAsCell == true
clear
importData
end
% process stuff
if executingAsCell == true
plot(myAwesomeResults)
end
Uwaga, to nie jest kopią mojego poprzedniego pytania:How to determine if code is executing as a script or function?
+1 Interesujące pytanie. Pierwsza myśl (brzydki hack): jak zdefiniować zmienną dummy jako pierwszą czynność wykonywaną w funkcji/skrypcie, a następnie sprawdzić, czy jest zdefiniowana? – user1884905
Możesz być w stanie to zrobić z [dbstack] (http://www.mathworks.nl/help/matlab/ref/dbstack.html), nie jestem pewien. – Junuxx