MATLAB Answers


modify import list of other scopes dynamically?

Asked by German Gomez-Herrero on 5 Nov 2012
Is there a way in MATLAB to modify the import list of a scope different from the current one? That is, I would like to be able to do something like this:
function import_mypackage()
evalin('caller', 'import mypackage.*');
This doesn't work. No error is produced when calling import_mypackage(), but the namespace contained in mypackage is not imported, i.e:
function foo()
g(); % Wanted mypackage.g() but got: Undefined function or variable
I know that you can modify dynamically the import list of the current scope either using eval or by passing a variable to import(). However, I cannot find any way to modify the import list of other scopes. Is there any way?
NOTE: I know there are many good reasons for not doing what I am asking here, but I think I have one reason to actually need this (I can give more info if someone asks). In any case, I would like to know just out of curiosity whether this is possible.
Thanks in advance!

  1 Comment

It seems evalin() has some pretty weird behavior, especially when combined with import(). See:

Sign in to comment.

0 Answers