2012-02-09 13 views
6

Estoy un poco confundido por la función de tic, pero no estoy seguro de si hay algo mejor para lo que estoy tratando de hacer. En pseudo-Matlab:Romper ciclo después del período de tiempo designado en Matlab

startTime = tic 

while(true) 

    #some_stochastic_process 

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

Pero las llamadas posteriores a Tic se clobber la hora original. ¿Hay alguna manera de acceder al valor actual de tic sin sobreescribirlo?

Respuesta

10

La función NOW devuelve un número de fecha de serie (es decir, una fecha y hora codificadas). En su lugar, debe estar asociando la llamada a TIC con una llamada a TOC para realizar cronómetro similar, así:

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 

Como alternativa, puede simplificar su bucle de este modo:

while (toc(timerID) < RUNTIME) 

    %# Perform some process 

end 
+0

Ah - I Supongo que estaba confundido sobre el papel de tic vs. toc. ¡Gracias! – chimeracoder

Cuestiones relacionadas