Разорвать петлю по истечении заданного промежутка времени в Matlab - PullRequest
6 голосов
/ 09 февраля 2012

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

startTime = tic

while(true)

   #some_stochastic_process

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

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

1 Ответ

10 голосов
/ 09 февраля 2012

Функция СЕЙЧАС возвращает серийный номер даты (т.е. закодированные дата и время).Вместо этого вы должны соединить вызов с TIC с вызовом на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...