2017-10-11 385 views
1

我試圖創建一個while循環,該循環將持續循環,直到用戶在命令行輸入爲止。Matlab命令行中用戶輸入循環中斷/停止

我試過這個第一個的兩個實現,第一個來自python這個位。問題在於,每次要循環遍歷時,都必須輸入非退出的內容。

global active 
    active = true; 

     while active == true 
      userInput = input('enter: ','s'); 
      inputHandler(userInput) 
      disp(rand) 
      pause(1); 
     end 

     function inputHandler(value) 
      global active 
      if value == 'exit' 
       active = false; 
      end 
     end 

第二是

global loopFlag 
loopFlag = true 

while loopFlag == true 
    %some awesome code happens here 
end 

的想法是,你可以在命令行中輸入loopFlag = false在代碼正在執行,將停止。 我知道這可以通過使用toggle button來完成,但我寧願不必去那條路線,除非絕對必要。

+1

那麼第一次執行有什麼問題? –

+0

@LuisMendo每次你想循環時都必須輸入一些東西。我需要循環自行運行,直到它看到來自命令行的輸入 –

+0

我不知道命令窗口檢測按鍵的方式,除了「輸入」,正如你所看到的停止程序在等待輸入時執行。你也許可以創建一個圖形並設置其'WindowKeyPressFcn',以便它將'UserData'從true更改爲false。然後,程序中的while循環將會在獲得(figureHandle,'UserData')' –

回答

-1
active = true; 
while active == true 
    active = input('Enter true or false '); 
    disp(rand) 
    pause(1) 
end 
+0

Nivi時,這種方法與我的第一次嘗試有相同的結果。您必須在循環的每次迭代中輸入一個值才能繼續。這個想法是,循環將持續運行,直到輸入命令來停止它。 –

+0

我明白了,我以爲你想讓你的prev代碼更好。我在Labview中做了這個,但不是Matlab。我認爲你可以使用GUI來做到這一點。 – Nivi