function retval = list_functions (directory) if (nargin == 0) retval = {}; p = path (); idx = find (p == pathsep ()); prev_idx = 1; for n = 1:length (idx) f = p (prev_idx:idx (n)-1); tmp = list_functions_in_dir (f); retval(end+1:end+length(tmp)) = tmp; prev_idx = idx (n) + 1; endfor else retval = list_functions_in_dir (directory); endif endfunction function retval = list_functions_in_dir (directory) retval = {}; extensions = {"m", "oct", "mex"}; for n = 1:length (extensions) f = fullfile (directory, ["*.", extensions{n}]); tmp = dir(f); retval(end+1:end+length(tmp)) = {tmp.name}; endfor for n = 1:length (retval) [dir, name, ext] = fileparts (retval{n}); retval{n} = struct ("dir", directory, "name", name, "ext", ext); endfor endfunction