Esiste qualcosa di simile a assignin()
per recuperare una variabile che esiste in un altro spazio di lavoro e portarla nello spazio di lavoro locale, ad es. come accedere a una variabile di base-workspace in una funzione !?Variabile di accesso da altro spazio di lavoro in Matlab?
Un esempio che sto attualmente cercando di ottenere è: ho una funzione bla(x)
che accetta un parametro. Se non si specifica x
, la funzione dovrebbe utilizzare automaticamente lo x
che esiste nell'area di lavoro matlab di base (se c'è un x
).
Qualcosa di bello sarebbe
function bla(x)
if(nargin == 0 && exist('x', 'base', 'var'))
x = fetchin('base', 'x');
end
% ...
end
So che fetchin()
non esiste e che exist()
# doesn t prendere un secondo parametro, ad esempio per controllare in un certo spazio di lavoro! Grazie mille in anticipo!
Ahh che è ciò che intende con 'eseguire l'espressione'. Pensavo che sarebbe stato solo per i calcoli, ma sì hai ragione! Chiamare l'espressione 'x' dà solo i valori di' x'. Grazie. Questo è un buon approccio per semplificare la chiamata della funzione per l'utente, ma gli dà comunque la possibilità di trasmettere i propri valori (nel caso in cui abbia bisogno di chiamarlo da un'altra parte)? Cosa succede quando non c'è NO x? Come controllare questo prima di chiamare 'evalin'? – tim
Cosa succede se il tuo 'x' dell'utente non è chiamato' x'? –
Mi assicuro che :-) Per sbarazzarsi dell'esistenza-controllo mi è venuta l'idea di usare semplicemente 'if (nargin == 0), prova, x = evalin ('base', 'x'); catch err, error ('O l'area di lavoro var x deve esistere, o è necessario passare x alla funzione'); fine, fine' – tim