Be the first to rate this file! 3 Downloads (last 30 days) File Size: 93.8 KB File ID: #35074
image thumbnail

Display progress, pause or stop a time-consuming loop

by Rafael Oliveira

 

14 Feb 2012 (Updated 17 Feb 2012)

Allows you to display a loop’s progress, pause (and also change related code) or stop it.

| Watch this File

File Information
Description

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);

Required Products MATLAB
MATLAB release MATLAB 7.13 (R2011b)
Tags for This File  
Everyone's Tags
flow control, gui, pause, progress, progressbar, status, stop
Tags I've Applied
Add New Tags Please login to tag files.
Please login to add a comment or rating.
Updates
14 Feb 2012

14/02/2012 - Corrected the stop.close behavior

17 Feb 2012

Added easter egg: xkcd.com/1017/

Contact us