Display progress, pause or stop a time-consuming loop
Anmerkung des Herausgebers: This file was selected as MATLAB Central Pick of the Week
This class creates a small pause/stop window, that allows you to either abort a running loop or pause the execution and create breakpoints or change/correct mistakes in the code (this works for files that are not in the stack from where stop.requested is called).
It can be used in different ways:
- Control the loop execution:
while ~stop.requested
%do your heavy calculations here
end
stop.close;
- abort execution in the middle
for i = 1:100
%do your heavy calculations here
if stop.requested
stop.close;
error('Stop requested')
end
end
- inform the current progress
iter = 1;
maxIter = 1000;
while iter<maxIter || stop.requested
%do your heavy calculations here
progress = iter/maxIter;
stop.setStatus('Running...',progress);
end
stop.close;
In loops with many iterations, you can also avoid updating the screen too often (and reduce the impact of calling stop.request), by calling: stop.requested(num); where num is the interval on which the gui will be refreshed to check for user interaction.
And to enable the easter egg (xkcd.com/1017/), use:
stop.setStatus('xkcd', progress);
Zitieren als
Rafael Oliveira (2024). Display progress, pause or stop a time-consuming loop (https://www.mathworks.com/matlabcentral/fileexchange/35074-display-progress-pause-or-stop-a-time-consuming-loop), MATLAB Central File Exchange. Abgerufen.
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
Tags
Quellenangaben
Inspiriert: xkcd1930
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
@stop/
Version | Veröffentlicht | Versionshinweise | |
---|---|---|---|
1.3.0.0 | Added easter egg: xkcd.com/1017/ |
||
1.1.0.0 | 14/02/2012 - Corrected the stop.close behavior |
||
1.0.0.0 |