Assign variable to Initialization/Current Workspace

1 visualización (últimos 30 días)
Jason Nicholson
Jason Nicholson el 21 de Mzo. de 2018
Respondida: Jason Nicholson el 2 de Mayo de 2018
In the mask of a simulink block, I need to loop over a list of variables and values assign them into the initialization workspace (not the base workspace. Touching the base workspace is unacceptable). The variables and values are stored in a MATLAB table that looks like this:
Use of eval, evalin, and assignin is close to the functionality that I need. However, I avoid use of eval and evalin as much as I can because of best practices in the MATLAB documentation. I think assignin is the functionality I need but I think I have to use it in an unusual way to get it to work correctly. Here is the code snippet that uses assignin:
helper = @(varname,value) assignin('caller',varname,value);
for iVariable=1:size(myVariableTable,1)
helper(myVariableTable.VariableName{iVariable}, myVariableTable.Value(iVariable));
end
This above code snippet works but I have to wrap assignin in an anonymous function. Is there a better way to get the functionality I need of assigning a variable to current workspace?

Respuestas (1)

Jason Nicholson
Jason Nicholson el 2 de Mayo de 2018
Yeah, don't do this. It will cause you pain. The Simulink tools that track where your variables come form cannot track where your variables come from. For instance, the Dependence Analysis in Simulink Project cannot track your where your variables come from.

Categorías

Más información sobre Simulink Functions en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by