Разрыв цикла после заданного промежутка времени в Matlab

Я немного смущен функцией tic, но я не уверен, есть ли что-то лучше для того, что я пытаюсь сделать. В psuedo-Matlab:

startTime = tic

while(true)

   #some_stochastic_process

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

но последующие вызовы tic будут сбивать исходное время. Есть ли способ получить доступ к текущему значению tic без его перезаписи?

1 ответов


функции Теперь возвращает серийный номер даты (т. е. закодированную дату и время). Вместо этого вы должны связать вызов с ТИЦ С TOC для выполнения секундомера, как время, как так:

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

кроме того, вы можете упростить свой цикл следующим образом:

while (toc(timerID) < RUNTIME)

    %# Perform some process

end