2011-01-14 149 views
2

我有一個START和STOP按鈕。當我點擊START時,我在回調中運行了一堆代碼。它基本上是一個連續的「腳本」,打開閥門,分配水,然後關閉閥門......沒有while()循環,並且不重複。我希望能夠隨時使用STOP按鈕來停止此過程。我見過的大多數相關答案都是在使用while()循環的情況下。有些人還建議定期檢查STOP按鈕是否被按下(使用變量或句柄變量)。停止MATLAB GUI回調

因爲我沒有while循環,所以我無法解決這個問題。此外,我希望能夠立即退出,而無需定期檢查(因爲在我的代碼中多次檢查會很醜陋和令人困惑)。有沒有辦法終止由STOP按鈕中斷的回叫?如果沒有,是否可以讓START按鈕運行.m文件,然後用STOP按鈕終止.m文件?

最糟糕的情況是定期檢查變量。

UPDATE: 嗯,看起來最壞的情況是什麼是MATLAB建議... http://www.mathworks.com/support/solutions/en/data/1-33IK85/index.html?product=ML&solution=1-33IK85

感謝。

+0

另一種方法是點擊'ctrl + c',但這很麻煩,可能不是你真正想要的。 – Jonas

+0

是的,不幸的是,我不希望用戶不得不按下這些鍵。我不認爲有一種方法編程方式做CTRL + C ... – leonhart88

回答

2

無論是否循環,您都將被迫在您的代碼中插入'檢查點',程序執行應繼續或停止。看看functions,命令return將在所需的點恢復執行。

所有您可以選擇的是使用Events and Listeners或The MathWorks提供的解決方案的「停止觸發器」傳播的「方法」。

+0

謝謝...這就是我想的,但我希望有一些方法來處理暫停的回調,並以某種方式終止它。閱讀關於中斷的MATLAB文檔,然而明確地說這是不可能的。我想我會嘗試分解我的代碼並將檢查點插入最合適的區域......謝謝! – leonhart88