File Exchange

image thumbnail

waitbar with time estimation

version 1.5.0.0 (3.33 KB) by Andrew
Estimated remaining, elapsed time, and percentage complete.

17 Downloads

Updated 23 Jan 2010

View Version History

View License

This version of waitbar is compatible with MATLAB's version. Thus, doesn't require any modification of existing functions using the waitbar. However, the property settings include with MATLAB's version will not be recognized.

This program is a heavily modified version of timebar.m by Chad English.

Cite As

Andrew (2021). waitbar with time estimation (https://www.mathworks.com/matlabcentral/fileexchange/22161-waitbar-with-time-estimation), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (28)

arsham hamidi

guang xu

Fabian Petersen

Morteza

zhanchao huang

HM LI

Great tools

Othmane ELMOUATAMID

Great tool!! Thank you for sharing :)

sanjay Negi

Great work!!!

Maximilian M

Paul Grasset

Knur Hartmann

Student Uni

SMK

Loved it. great work.

Dvir

WurmD

Heya, loved it! ^_^

Works seamlessly with my old code.

Just ran into one hiccup in my work PC, sometimes it hangs in this line:

h = buildwaitbar(X,message);

my solution, just a try catch and re-try:

try
h = buildwaitbar(X,message);
catch me
warning([me.message '. Retrying...'])
h = buildwaitbar(X,message);
end

Ivan

Lukas Lansky

Works nicely.

Preetham Manjunatha

Awesome work! Great share, keep that up.

François Beauducel

Great job. Thanks.
A little improvement for compatibility: in Matlab's original waitbar, the 'message' string is optional for the first call:
h=waitbar(0);
With your function it makes an error.

Rob Campbell

Like the Mathworks waitbar but better! Very useful for loops in which each iteration takes a long time. There are solutions for loops with quick iterations so the above critique is somewhat harsh.

Philipp Pruefer

Great tool! The only prob I had was dealing with zero progress. My solution is:

% 2.2 - Calculate the estimated time remaining
e_mes = datestr(elap/86400,'HH:MM:SS');
if progress~=0
sec_remain = elap*(1/progress-1);
r_mes = datestr(sec_remain/86400,'HH:MM:SS');
else
r_mes = ('--:--:--');
end

Not sure why I had the prob only after a fresh start of Matlab though...

csb

try this to speed up things

% pause(10e-120) % Needed for window to appear (do not know why)
drawnow

NeuralDip

Ross, i don't want to argue much on this, i see your point.
I mean you have a point if the computation is heavy due to what's inside the loop, but not when is due to the high number of iterations.

Ross Hatton

In response to the time comparison:

Updating the graphical progress display is certainly going to take longer than an addition operation like k=k+1, but will be negligible when compared to a computationally heavy process, and can be read from across the room.

NeuralDip

ok, cool looking, but this whole waitbar thing is not very useful.
the point is that updating graphics in Matlab is very time consuming.look at this:

h = waitbar(0,'Please wait...');
k=0;
tic
for i=1:1000,
k=k+1;
waitbar(i/1000);
end
toc
k=0;
tic
for i=1:1000,
k=k+1;
end
toc
Elapsed time is 15.628354 seconds.
Elapsed time is 0.003811 seconds.

If you have a loop that takes enough time to make reasonable the use of a timebar, then using the timebar will make the computation 4000 times slower.
Updating only test is much more efficient, so i like going for a running percentage thing.
The timebar is good looking though

Arturo Serrano

William Henry Brave

Great contribution, works seamlessly without any modification of the code, thanks...

Anthony Kendall

Very nice, though there is one bug that shows up in the provided example: the message is overwritten with the graphics handle

A fix I used is:
line 45: h = message;
becomes
line 45: h = message; message = [];

And, in the subfunction updatewaitbar:
line 143: set(hh.message,'String',message);
becomes
line 145: if ~isempty(message),set(hh.message,'String',message);end

Otherwise, it works great and is a complete drop-in replacement for waitbar. Thanks!

MATLAB Release Compatibility
Created with R2007b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!