¿Hay algo similar a assignin()
para recuperar una variable que existe en otro espacio de trabajo y llevarla al espacio de trabajo local, p. como acceder a una variable de espacio de trabajo base en una función !?¿Variable de acceso desde otro espacio de trabajo en Matlab?
Un ejemplo que estoy tratando de lograr es: Tengo una función bla(x)
que toma un parámetro. Cuando no se especifica x
, la función debe usar automáticamente el x
que existe en el espacio de trabajo base de matlab (si hay un x
).
algo agradable sería
function bla(x)
if(nargin == 0 && exist('x', 'base', 'var'))
x = fetchin('base', 'x');
end
% ...
end
Sé que fetchin()
no existe y que doesn exist()
# t toma un segundo parámetro tal de comprobar en un determinado espacio de trabajo! ¡Muchas gracias de antemano!
Ahh eso es lo que entiende por 'ejecutar la expresión'. Pensé que esto sería solo para cálculos, pero sí, tienes razón. Llamar a la expresión 'x' solo da los valores de' x'. Gracias. ¿Es lo anterior un buen enfoque para simplificar la llamada de la función para el usuario, pero todavía le da la posibilidad de pasar sus propios valores (por si acaso necesita llamar desde otro lugar)? ¿Qué sucede cuando NO hay 'x'? ¿Cómo verificar esto antes de llamar a 'evalin'? – tim
¿Qué pasa si la 'x' de su usuario no se llama' x'? –
Me aseguro de eso :-) Para deshacerme del control de la existencia, se me ocurrió la idea de simplemente usar 'if (nargin == 0), try, x = evalin ('base', 'x'); catch err, error ('O el espacio de trabajo var x debe existir, o debe pasar x a la función'); fin, fin – tim