0
我在MATLAB 2014a上運行這個程序,並且命令行不返回。MATLAB腳本不會在Mac上終止
a = 0;
while (1)
a = a + 1;
if (a ~= 2)
continue;
end;
end;
沒有響應,當我做控制 - ç或命令 - 。(或任何其他常見的鍵盤組合鍵)。如何讓腳本終止?
我在MATLAB 2014a上運行這個程序,並且命令行不返回。MATLAB腳本不會在Mac上終止
a = 0;
while (1)
a = a + 1;
if (a ~= 2)
continue;
end;
end;
沒有響應,當我做控制 - ç或命令 - 。(或任何其他常見的鍵盤組合鍵)。如何讓腳本終止?
而不是「繼續」,嘗試「休息」。
這裏是我的推理:
「繼續」暫時中斷程序循環的執行,跳過在循環體中任何剩餘的語句爲當前通止。
所以也沒有完全退出循環,它會跳過任何剩餘代碼在循環,然後重新評估while循環,而你的情況始終是真實的的條件。
相反,break完全退出循環。
另一種方式去了解它是重寫你的循環語句,例如:
a = 0;
while a~=2
a = a + 1;
end
不知道爲什麼它不會停止與CTRL-C運行雖然。我希望您的腳本運行時間如此之長,以至於您的機器的響應速度可能會逐漸變慢。這篇文章暗示:http://www.mathworks.com/help/matlab/matlab_env/stop-execution.html
相關:[什麼是「緊圈」?](http://stackoverflow.com/q/2212973/2278029)。你想讓你的循環自己正常退出嗎?還是你希望能夠使用control-C來中止腳本/函數? – horchler 2014-10-08 18:05:53
我剛剛在Linux機器上使用了R2013a,並得到了相同的行爲。我懷疑需要熟悉matlab解釋器才能知道爲什麼中斷信號沒有達到它。 – AnonSubmitter85 2014-10-08 18:31:53
@ AnonSubmitter85:因爲它是一個緊密的循環 - 請參閱我上面評論中的鏈接。循環需要明確的「暫停」或調用另一個函數(例如涉及圖形的某些東西),這些函數允許命令窗口有足夠的時間/資源來中斷正在運行的代碼。 – horchler 2014-10-08 23:44:19