Filter löschen
Filter löschen

Matlab Tic and toc print something every .5 seconds?

29 Ansichten (letzte 30 Tage)
Andrew
Andrew am 15 Sep. 2013
Bearbeitet: Ryan am 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

Antworten (3)

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

Walter Roberson
Walter Roberson am 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 Kommentare
Andrew
Andrew am 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 am 16 Sep. 2013
Bearbeitet: Image Analyst am 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

Melden Sie sich an, um zu kommentieren.


Image Analyst
Image Analyst am 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 Kommentare
Andrew
Andrew am 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 am 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().

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Programming Utilities finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by