Code covered by the BSD License  

Highlights from
Recursive Directory Function Execution

from Recursive Directory Function Execution by Rodney Thomson
Recurse through all directories executing the supplied function

directoryRecurse(directory, function_pointer, varargin)
% directoryRecurse - Recurse through sub directories executing function pointer
%===============================================================================
% Description   : Recurses through each directory, passing the full directory
%                 path and any extraneous arguments (varargin) to the specified 
%                 function pointer
%
% Parameters    : directory        - Top level directory begin recursion from
%                 function_pointer - function to execute with each directory as
%                                    its first argument
%                 varargin         - Any extra arguments that should be passed 
%                                    to the function pointer.
%
% Call Sequence : directoryRecurse(directory, function_pointer, varargin)
%
%                 IE: To execute the 'rmdir' command with the 's' parameter over 
%                     'c:\tmp' and all subdirectories
%
%                     directoryRecurse('c:\tmp', @rmdir, 's')
%
% Author        : Rodney Thomson
%                 http://iheartmatlab.blogspot.com
%===============================================================================
function directoryRecurse(directory, function_pointer, varargin)

    contents    = dir(directory);
    directories = find([contents.isdir]);
    
    % For loop will be skipped when directory contains no sub-directories
    for i_dir = directories
        
        sub_directory  = contents(i_dir).name;
        full_directory = fullfile(directory, sub_directory);
        
        % ignore '.' and '..'
        if (strcmp(sub_directory, '.') || strcmp(sub_directory, '..'))
            continue;
        end 
        
        % Recurse down
        directoryRecurse(full_directory, function_pointer, varargin{:});
    end
    
    % execute the callback with any supplied parameters.
    % Due to recursion will execute in a bottom up manner
    function_pointer(directory, varargin{:});
end

Contact us at files@mathworks.com