Azzera filtri
Azzera filtri

Matlab Tic and toc print something every .5 seconds?

29 visualizzazioni (ultimi 30 giorni)
Andrew
Andrew il 15 Set 2013
Modificato: Ryan il 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

Risposte (3)

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

Walter Roberson
Walter Roberson il 16 Set 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 Commenti
Andrew
Andrew il 16 Set 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 il 16 Set 2013
Modificato: Image Analyst il 16 Set 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

Accedi per commentare.


Image Analyst
Image Analyst il 16 Set 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 Commenti
Andrew
Andrew il 16 Set 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 il 16 Set 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().

Accedi per commentare.

Categorie

Scopri di più su Programming Utilities in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by