Is it possible for a Simulink block to access variables loaded from a MAT-file in the local workspace of a function?

1 visualizzazione (ultimi 30 giorni)
I have a function in which I load variables from a MAT-file and then start a Simulink model using the SIM function. The function looks as follows:
 
function startfun
load 'mymatfile.mat'
sim('mymodel');
end
The model contains some constant blocks which use the loaded variables for their "Constant value" parameter. However, running startfun results in the following error:
  ERROR: ??? Error using ==> startfun at 4 Error evaluating parameter 'Value' in 'mymodel/Constant': Undefined function or variable 'myvar'.
where myvar is a variable saved in my MAT-file and that I use for the constant value in a constant block.

Risposta accettata

MathWorks Support Team
MathWorks Support Team il 2 Set 2015
Simulink blocks like the Constant block read variables from the base workspace. As such, variables loaded in a function's local workspace are invisible to these blocks.
As a workaround, use EVALIN inside your function to load the MAT-file in the base workspace:
 
function startfun
evalin('base','load mymatfile.mat');
sim('mymodel');
end

Più risposte (0)

Categorie

Scopri di più su Programmatic Model Editing in Help Center e File Exchange

Tag

Non è stata ancora inserito alcun tag.

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by