Matlab Tic and toc print something every .5 seconds?

46 views (last 30 days)
Andrew
Andrew on 15 Sep 2013
Edited: Ryan on 6 Nov 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

Answers (3)

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

Walter Roberson
Walter Roberson on 16 Sep 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 Comments
Andrew
Andrew on 16 Sep 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 on 16 Sep 2013
Edited: Image Analyst on 16 Sep 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

Sign in to comment.


Image Analyst
Image Analyst on 16 Sep 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 Comments
Andrew
Andrew on 16 Sep 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 on 16 Sep 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().

Sign in to comment.

Categories

Find more on Programming Utilities in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!