File Exchange

image thumbnail

filefun: Apply a function to files

version 1.0 (14.3 KB) by

Adds multi-file functionality to functions handling only single files.

3.33333
3 Ratings

1 Download

Updated

No License

Editor's Note: This file was a File Exchange Pick of the Week

FILEFUN is created in the same spirit as e.g. CELLFUN, in that it repeatedly calls the same function FUN with different arguments, in this case filenames. It will then collect the output(s) of the function into concatenated arrays of the same type as FUN delivers, or encapsulated individually in cell arrays.

The filename argument to FILEFUN may contain wildcards(*) and FILEFUN may optionally traverse subdirectories recursively.

FILEFUN can also be called without the FUN argument, turning it into a recursive wildcard file finder.

See 'help filefun' for extensive help and more examples.

Examples:

Open all figure files in current directory:

filefun(@openfig,'*.fig')

Pick a couple of image files and compute their mean RGB values:

pth=fullfile(matlabroot, 'toolbox', ...
'matlab', 'demos', 'html', filesep);
[filenames,pathname]=uigetfile('*.png','Pick files', ...
pth,'MultiSelect', 'on');
fun=@(fn) squeeze(mean(mean(imread(fn))))';
mn=filefun(fun,strcat(pathname,filenames))

Comments and Ratings (4)

mehmet evcim

Nitin

Nitin (view profile)

John D'Errico

Sorry. It does indeed run quite nicely on the mac. The author referred to '\' in his comments, but uses filesep in the code itself. Very good. A great tool if you wish to process evey jpeg file in a directory tree, or a variety of other tasks.

John D'Errico

This looks very nice. I can only offer one enhancement - instead of using the fixed '\' as a separator in paths, use filesep instead. Filesep provides the correct separator for various operating systems. For example, a mac needs '/'.

Updates

Removed the PATH argument.

Made the List parameter false by default if a function handle is given as first argument.

Note: These changes will break some old code, but I think the advantages are worth it.

Uploaded the old version by mistake in previous update.

Gives better error info when no error handling routine is specified.

New parameter: CheckExistence.
Change in comments.

1.1 Fixed erroneous NaN option of UniformOutput.
Usage of NaN is discouraged.Instead, UniformOutput can now be entered as a
logical, making it congruent with CELLFUN et.al.
Path can now be entered as [], as well as ''.

MATLAB Release
MATLAB 7.1.0 (R14SP3)
Acknowledgements

Inspired by: parse_pv_pairs

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video