2014-10-08 72 views
0

我在MATLAB 2014a上運行這個程序,並且命令行不返回。MATLAB腳本不會在Mac上終止

a = 0; 
while (1) 
    a = a + 1; 
    if (a ~= 2) 
     continue; 
    end; 
end; 

沒有響應,當我做控制 - ç命令 - (或任何其他常見的鍵盤組合鍵)。如何讓腳本終止?

+0

相關:[什麼是「緊圈」?](http://stackoverflow.com/q/2212973/2278029)。你想讓你的循環自己正常退出嗎?還是你希望能夠使用control-C來中止腳本/函數? – horchler 2014-10-08 18:05:53

+0

我剛剛在Linux機器上使用了R2013a,並得到了相同的行爲。我懷疑需要熟悉matlab解釋器才能知道爲什麼中斷信號沒有達到它。 – AnonSubmitter85 2014-10-08 18:31:53

+0

@ AnonSubmitter85:因爲它是一個緊密的循環 - 請參閱我上面評論中的鏈接。循環需要明確的「暫停」或調用另一個函數(例如涉及圖形的某些東西),這些函數允許命令窗口有足夠的時間/資源來中斷正在運行的代碼。 – horchler 2014-10-08 23:44:19

回答

1

而不是「繼續」,嘗試「休息」。

這裏是我的推理:

「繼續」暫時中斷程序循環的執行,跳過在循環體中任何剩餘的語句爲當前通止

所以也沒有完全退出循環,它會跳過任何剩餘代碼在循環,然後重新評估while循環,而你的情況始終是真實的的條件。

相反,break完全退出循環。

另一種方式去了解它是重寫你的循環語句,例如:

a = 0; 
while a~=2 
    a = a + 1; 
end 

不知道爲什麼它不會停止與CTRL-C運行雖然。我希望您的腳本運行時間如此之長,以至於您的機器的響應速度可能會逐漸變慢。這篇文章暗示:http://www.mathworks.com/help/matlab/matlab_env/stop-execution.html