Stuart’s MATLAB Videos

Watch and Learn

Displaying Progress Status of Long Running Script, Part 4: Display-Erase Utility

Sometimes when displaying the progress of a long running script, there is so much output at the command window that there is too much to scroll through or the buffer fills up and you can’t go back to see full the history.

In this code-along style video I write a utility, based on my colleague Sean’s suggestion that displays new status information after erasing the previous information. This allows progress to displayed without filling up the command window.

Features used in this video include:

  • Displaying characters and strings
  • Storing state with nested functions

Video Player is loading.
Current Time 0:00
Duration 47:21
Loaded: 0%
Stream Type LIVE
Remaining Time 47:21
 
1x
  • descriptions off, selected
  • captions off, selected
  • en (Main), selected

    Play the video in full screen mode for a better viewing experience.

    Function is here:

    
    function f=makeEraseDisplayFunction
    
    % Length of last string
    len=0;
    
    % Return handle to function
    f = @displayFunction;
    
    % Nested Function
        function displayFunction(str,varargin)
            
            if nargin>=2
                eraseThisTime=varargin{1}; % True or false
                if ~eraseThisTime
                    len = 0;
                end
            end
            
            % Erase previous characters
            eraseStr=repmat('\b',[1 len] );
            fprintf(eraseStr);
            
            % Display New characters
            fprintf(str);
            
            % Decide what to do at next call
            if nargin == 3
                eraseNextTime=varargin{2}; % True or false
                
                if eraseNextTime
                    len = length(str);
                end
                len = 0;
            else
                len = length(str);
            end
        end
    end
    
    |
    • print

    Comments

    To leave a comment, please click here to sign in to your MathWorks Account or create a new one.

    Loading...
    Go to top of page