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.
Assign variable to Initialization/Current Workspace
3 次查看(过去 30 天)
显示 更早的评论
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/171440/image.jpeg)
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 个评论
回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Simulink Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!