Matlab GUI如何在运行的Matlab脚本中访问变量?

时间:2015-08-13 01:44:13

标签: matlab user-interface

GUI(来自指南)有一个按钮:go; go.m是一个运行无限循环的脚本。

GUI有一个需要设置变量的SHUTDOWN按钮:script_should_run = false; 当脚本go.m检测到时 script_should_run = false;  它将结束无限循环。

GUI.m如何在go.m中控制变量script_should_run?

1 个答案:

答案 0 :(得分:0)

一般情况下我不建议使用全局变量,最好将变量放在工作区中并在无限循环中读取它。请尝试以下示例程序。它不是从指南创建的GUI,但它是相同的方式。

%GUI with two buttons
function Untitled
   uicontrol('Position',[20,20,60,25],'String','go','Callback',@go_callback);
   uicontrol('Position',[100,20,100,25],'String','SHUTDOWN','Callback',@stop_callback);
end

function go_callback(varargin)
   script_should_run = 1;
   assignin('base','script_should_run',1)
   while(script_should_run == 1)
       script_should_run = evalin('base','script_should_run');
       disp('go')
       pause(0.1) %need to pause else MATLAB will ignore when you push the stop button
   end
end

function stop_callback(varargin)
  assignin('base','script_should_run',0)
end