2015-11-23 46 views
1

我创建了MatLab GUI,并通过单击GUI上的按钮来执行matlab脚本。添加等待条到MATLAB gui

现在我想为展示消费为脚本

的运行下面的代码时方法显示了我是怎么做的,到目前为止

function pushbutton1_Callback(hObject, eventdata, handles) 
% hObject handle to pushbutton1 (see GCBO) 
run('resizeingDONTDELETE.m'); 
end 

我找到表演的等待酒吧代码,但它不工作!!!!

h = waitbar(0,'Please wait...'); 
steps = 1000; 
for step = 1:steps 
run('resizeingDONTDELETE.m'); 
    waitbar(step/steps) 
end 
close(h) 

在这里我想要的结果如下,

  • 单击按钮时等待按钮应该是开放的,并应 放映时间为零
  • 时间应随时间增加采取执行执行等待杠,后脚本
  • 应disappered

任何人都可以帮助我......

+0

你的'waitbar'调用应该在'resizeingDONTDELETE.m'内的某个地方,如果它有一个for循环,而不是外部。 –

+0

它发生了什么它包含没有for循环 –

+0

是的!它的工作 –

回答

0

如果您的脚本被划分为一些中间步骤(不一定是for循环),那么您可以在每个中间步骤(或之前)指示进度的情况下,waitbar是有用的。在伪代码中,假设你有4个中间步骤:

  • 主脚本
    • waitbar(0/4)
    • 做中间步骤1
    • waitbar(1/4)
    • 做中间步骤2
    • waitbar(2/4)
    • 做中间步骤3
    • waitbar(3/4)
    • 做中间步骤4
    • waitbar(4/4)

否则,如果你的脚本是一个 '黑箱',这开始和终止,而不给你访问一些中间步骤 - 您不能以有用的方式使用waitbar

+0

你能请帮助我要在时间上表示(我的意思是这个过程花费的时间在第二/分钟/小时) –

+0

为了表示时间,你需要知道(至少大约)总时间t_total,所以你可以在开始时写入'tt = tic;'然后'waitber(toc(tt)/ t_total)' –

+0

它会显示时间(我的意思是时间的数字{let at 1s as 00 00 01,at 2s as 00 00 02和最后00 t_total 55(假设)like wise}) –