File Exchange

image thumbnail

Progress Dialog

version 1.0.0.0 (4.72 KB) by Felix Ruhnow
Novel progress dialog without using drawnow function, which is optimized for minimal CPU usage.

1 Download

Updated 07 Aug 2013

View License

Progressdlg creates or updates an existing progress dialog that reports on the progress of a task including the estimated time remaining as well as a button to cancel the task. It does not use drawnow in order to improve performance when using one or several other figures (drawnow refreshes all graphics objects in all figures).

Syntax:
progressdlg creates default progress dialog

progressdlg('message'); creates default progress dialog with custom message

progressdlg(n); creates default progress dialog with initial value n or updates existing progress dialog to value n

progressdlg(n,'message'); creates default progress dialog with message and value n or updates existing progress dialog to value n and message

progressdlg('PropertyName',PropertyValue,...); creates or updates progress dialog with properties PropertyName/PropertyValue

handle = progressdlg(...); returns the handle to the progress dialog
handle is empty if user aborted by pressing cancel

See help progressdlg for examples and PropertyName/PropertyValue

Notes:
1) Does not use drawnow to refresh the progress bar in order to improve performance, especially when using one or several additional figures with many graphics objects.
2) Performance is slightly decreased when using the remaining time estimation and/or cancel button

Warning:
This code heavily relies on undocumented and unsupported Matlab functionality. It works on Matlab 7+, but use at your own risk!

Comments and Ratings (2)

raym

How to run multiple Progress Dialog with independent control?

Jan Keller

Doesn't run.
Error using progressbar (line 18)
Expected input to be one of these types:

numeric

Instead its type was matlab.ui.Figure.

Error in ProgressDialog/UpdateDialog (line 99)
progressbar(obj.Dialog, r, obj.StatusMessage);

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

Inspired by: WORKBAR, statusbar