How do I run a script from a GUI that will run in the 'base' workspace?

조회 수: 25 (최근 30일)
I have a simulink model that uses a lot of variables from the base workspace. Now I am making a GUI that runs the model, but I want to be able to reinitialize the base workspace by calling the script that does this. But I want to do it from the GUI. How do I run a script as if in the base workspace so that it populates all the variables there? I could use assignin('base', var, reinitvar), but this would be extremely tedious for all the variables. Is there another option?
  댓글 수: 3
Stephen23
Stephen23 2016년 2월 25일
편집: Stephen23 2016년 2월 25일
Adam has asked the most important question. Making variables magically appear (or evalin-ing) in workspaces is buggy and slow. So why do this? Keep workspaces distinct, and pass variables properly.
Walter Roberson
Walter Roberson 2016년 2월 25일
It is because Simulink "From Workspace" blocks get their values from the Base workspace if the model is invoked by double-clicking on it or by using the menus. However, if the model is invoked by a MATLAB function running the sim() command, then From Workspace gets its variables from the workspace of the function that has the sim() call. I gather, however, that it is not uncommon for From Workspace blocks to somehow be configured to look only in the Base workspace.
Simulink bypasses normal workspace encapsulation sometimes :(

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2016년 2월 25일
evalin('base', 'name_of_script')
  댓글 수: 4
Sanjeev Kumar
Sanjeev Kumar 2019년 2월 26일
Thanks!!
But its not working while using the same command in Callback function of a button in Matlab GUIDE.
Ex:
function Button_callback(hObject,eventdata,handles)
evalin('base','MyScript.m');
end
An error is coming like:Undefined variable 'MyScript.m' or class 'MyScript.m'
Arif Kilic
Arif Kilic 2020년 6월 19일
don't use .m. just write your script name

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

pjman yucifee
pjman yucifee 2018년 4월 10일
Very nice.....Thanks a lot

카테고리

Help CenterFile Exchange에서 Simulink Functions에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by