2012-02-09 9 views
6

Tôi hơi bối rối bởi chức năng tic, nhưng tôi không chắc liệu có điều gì tốt hơn cho những gì tôi đang cố gắng làm hay không. Trong psuedo-Matlab:Vòng lặp ngắt sau khoảng thời gian được chỉ định trong Matlab

startTime = tic 

while(true) 

    #some_stochastic_process 

    if(now - startTime > RUNTIME) 
    break; 
    end 
end 

Nhưng các cuộc gọi tiếp theo đến tic sẽ ghi lại thời gian ban đầu. Có cách nào để truy cập vào giá trị hiện tại của tic mà không ghi đè nó?

Trả lời

10

Chức năng NOW trả về số ngày tháng (ví dụ: ngày và giờ được mã hóa). Thay vào đó nên được ghép nối các cuộc gọi đến TIC với một cuộc gọi đến TOC để thực hiện thời gian đồng hồ bấm giờ giống như, như vậy:

timerID = tic; %# Start a clock and return the timer ID 

while true 

    %# Perform some process 

    if(toc(timerID) > RUNTIME) %# Get the elapsed time for the timer 
     break; 
    end 

end 

Ngoài ra, bạn có thể đơn giản hóa vòng lặp của bạn như sau:

while (toc(timerID) < RUNTIME) 

    %# Perform some process 

end 
+0

Ah - Tôi đoán tôi đã nhầm lẫn về vai trò của tic so với toc. Cảm ơn! – chimeracoder