Borrar filtros
Borrar filtros

Matlab Tic and toc print something every .5 seconds?

29 visualizaciones (últimos 30 días)
Andrew
Andrew el 15 de Sept. de 2013
Editada: Ryan el 6 de Nov. de 2013
Use a while loop to do the following for a total of 5 seconds. Every half second print, using
fprintf, the message “The elapsed time is:” followed by the time
This is all I've come up with after looking at it for over an hr..
clear, clc
close all
tic
timerVal = tic;
value = toc(timerVal);
while value <= 5
I cant seem to figure this out... i can easily get it to print the elasped time up to 5 seconds but i have no idea how to make it print every .5 seconds... Any help would be appreciated

Respuestas (3)

Ryan
Ryan el 6 de Nov. de 2013
Editada: Ryan el 6 de Nov. de 2013
tic
while toc<=10
pause(0.5)
fprintf('elapsed time is: %.2f seconds. \n',toc')
end

Walter Roberson
Walter Roberson el 16 de Sept. de 2013
start a timer. Loop. Grab the elapsed time for the timer. continue in the loop if the elapsed time is less than 1/2 second. After the loop, stop the timer if need be.
  2 comentarios
Andrew
Andrew el 16 de Sept. de 2013
So if I wanted to go all the way to 5 seconds I would essentially make 10 loops for each .5 seconds and display the time right after ea loop?
Walter Roberson
Walter Roberson el 16 de Sept. de 2013
Editada: Image Analyst el 16 de Sept. de 2013
do the body of this loop until 5 seconds have elapsed
do the body of this loop until 1/2 second has elapsed
pause, or do some busy work to waste time
end of inner loop
my gosh, we're half a second later than we were before. Oh what shall we do?
end of outer loop

Iniciar sesión para comentar.


Image Analyst
Image Analyst el 16 de Sept. de 2013
How about if you do a for loop where there is a pause(0.5) and a fprintf() inside the loop?
tic
for k = 1 : 10
pause(0.5);
fprintf('Elapsed time = %.2f seconds.\n', toc);
end
  2 comentarios
Andrew
Andrew el 16 de Sept. de 2013
Is there a way to not use a pause function, like will I have to make multiple loops if I don't pause?
Image Analyst
Image Analyst el 16 de Sept. de 2013
What's wrong with pause() - it seems to fit your homework question guidelines and doesn't seem to be excluded. Otherwise you can use a timer but it's trickier and more difficult. I'll give you one hint. Here's some code to stop all timers.
% Delete all timers from memory.
listOfTimers = timerfindall
if ~isempty(listOfTimers)
delete(listOfTimers(:));
end
You need to do something, so I'll let you figure out how to start the timer. The advantage of a timer is that you can do something in between timer events - you're not hung up like you are with pause().

Iniciar sesión para comentar.

Categorías

Más información sobre Programming Utilities en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by