Display progress, pause or stop a time-consuming loop
Note de l’éditeur : 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);
Citation pour cette source
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. Récupéré le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Remerciements
A inspiré : xkcd1930
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
@stop/
Version | Publié le | Notes de version | |
---|---|---|---|
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 |