2015-11-23 43 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}) –