2016-10-04 110 views
0

我有一個矩陣testNumbers = [1, 3, 8, 6, 9, 7]提示用戶輸入,時間4秒,然後再次提示

我現在想要做的是讓用戶提示輸入,並檢查輸入是否等於testNumbers(1),如果是做某事(以後,%做某事),並在4秒後繼續讓用戶再次輸入一個數字,但這次檢查testNumbers(2)是否等於用戶提示。這將繼續,直到length(testNumbers)結束。

可以這樣做嗎?我假設一個for循環必須被使用,但我是全新的,因此一個例子會很棒。然後我可以繼續構建這個。

A實施例:

testNumbers = [1, 3, 8, 6, 9, 7] 
  1. 將啓動一個定時器(4秒)t的範圍內
  2. 用戶輸入1 < = 4秒
  3. 做類似DISP( '正確')
  4. 用戶輸入3內t < = 4秒
  5. 做一些像disp('正確')
  6. 用戶應該輸入8但時間用完
  7. 做類似DISP(「時間用完」)
  8. 用戶輸入5噸內< = 4秒,但是是錯誤的,應爲6
  9. 做類似DISP (「錯誤」)
  10. 繼續這樣下去,直到矩陣結束...

回答

3

您可以使用tictoc測量兩點之間所經過的時間。您可以在用戶輸入之前放置tic(啓動計時器),然後使用toc,無論您想要檢查自該點以來經過的時間。您可以使用多個toc's,他們都會參考最接近的tic

% Start the timer 
tic 

% Prompt the user for input 
value = input('Enter a number:'); 

elapsed_time = toc; 

% If the response took more than 4 seconds 
if elapsed_time > 4 
    disp('took too long') 
end 

如果不是(如您的標題州)要等待4秒,可以使用pause暫停程序的執行,因爲我已經改變了我的頭銜的時候

input('Enter a number:'); 

pause(4) % Pause for 4 seconds 

% Do something else 
+0

一個給定的量。是否有可能獲得每個tic和toc之間的時間間隔? –

+1

@Lasse這正是'toc'返回的結果。更新爲更清晰一點 – Suever

+0

我明白了。如果時間用完,是否有可能中止提示?這樣的:如果ELAPSED_TIME> 4 - 中止提示 - 待辦事宜的東西 - 現在用戶可以輸入的東西,即使時間了。我可以阻止它,或者至少可以阻止它們之間的事情嗎? –