Pause function in matlab for specified time

4 views (last 30 days)
Richie
Richie on 6 Oct 2013
Answered: per isakson on 6 Oct 2013
Hi all,
I am writing a program that creates a plot of a 4-bar mechanism with a driver crank rotating a full 360 degrees. My plot refreshes every 1 degree, showing the positions of all the links for every degree (361 different plots). I want the plotting to last 15 seconds, but I can't seem to determine how to do this. Below is the code I currently use, but it is not accurate enough. It somehow lasts close to 20 seconds.
format longg
total_time = 15; %seconds
nom_wait = total_time / 361; %seconds
start_time = tic;
for m=1:361
time = clock;
plot(x(:,m),y(:,m),'-r')
title('Centerline Plots of Mechanism Links')
axis equal
axis([-100 20 -20 100])
if (361-m)~=0
elapsed_iteration = etime(clock,time)
total_elapsed = toc(start_time);
time_left = total_time - total_elapsed
if (361-m)>0
wait1 = nom_wait - elapsed_iteration
wait2 = time_left / (361-m)
end
end
pause(wait2)
fprintf('Time Elapsed: %.4f \n',total_elapsed)
end
From my understanding, this should calculate the time it needs to pause between each plot iteration, but it doesn't complete after the 15 seconds. Is this a program issue where my calculations are incorrect, or is it too difficult for the computer to pause more precise than 0.01 seconds?
Thank you for the help!

Answers (1)

per isakson
per isakson on 6 Oct 2013
Try
doc timer

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!