La funzione sotto è un hack homegrown per rilevare se il suo argomento si riferisce ad uno script o nonEsiste un test integrato per stabilire se una stringa (o handle) si riferisce a uno script?
function yesno = is_script(string_or_handle)
try
nargin(string_or_handle);
yesno = false;
catch me
if ~strcmp(me.identifier, 'MATLAB:nargin:isScript')
rethrow(me);
end
yesno = true;
end
end
Tali hack sono difficili da mantenere. (Questo si interromperà, ad esempio, ogni volta che MathWorks decide di cambiare la classe di identificatore di eccezione che nargin
genera quando riceve uno script come input.)
MATLAB ha già una funzione incorporata per fare ciò?
Capisco che vogliate differenziare gli script _da le funzioni_. Il tuo approccio differenzia tra uno script e una funzione che non richiede input? –
Che dire di 'run (che (string_or_handle));' quale errore se non è un file di script standalone? – TroyHaskin
@AndrasDeak True ... – TroyHaskin