How can I determine a function in a folder and call it programmatically in MATLAB?

I have a folder which contains several functions. I want to obtain a list of all the functions in this folder and call them with appropriate input arguments.

 Accepted Answer

In the code below demonstrates reading all the files with a .m extension from a folder, identifying the function name 'plot' from the list and then calling it using FEVAL to plot a line from 1 to 10.
% Find all the files with the .m extension in a directory
graph_files = dir(fullfile(matlabroot,'\toolbox\matlab\graph2d\*.m'));
% Get the names of the files into a cell array
g_f = cell(length(graph_files),1);
[g_f{:}] = deal(graph_files.name);
% Identify the file to be used
x = strmatch('plot.m', g_f, 'exact');
% Remove .m from the end
name = g_f{x}(1:end-2);
% Use the function with appropriate input arguments
feval(name,1:10);

More Answers (0)

Categories

Products

Release

R2009a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!