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?
0 Comments
Sign in to comment.