In order to distribute a function I've written that depends on other functions I've written that have their own dependencies and so on without distributing every m-file I have ever written, I need to figure out what the full list of dependencies is for a given m-file. Is there a built-in/freely downloadable way to do this?
Specifically I am interested in solutions for MATLAB 7.4.0 (R2007a), but if there is a different way to do it in older versions, by all means please add them here.
For newer releases of Matlab (eg 2007 or 2008) you could use the built in functions:
Another option is to use Matlab's profiler. The command is profile, it can also be used to track dependencies. To use profile, you could do
If profiler is not available, then perhaps the following two functions are (for pre-MATLAB 2015a):
For example,
gives a structure, deps, that contains all the dependencies of foo.m.
From answers 2, and 3, newer versions of MATLAB (post 2015a) use
matlab.codetools.requiredFilesAndProducts
instead.See answers
EDIT:
Caveats thanks to @Mike Katz comments
For
MATLAB 2015a
and later you should preferably look at matlab.codetools.requiredFilesAndProductsor
doc matlab.codetools.requiredFilesAndProducts
because
depfun
is marked to be removed in a future release.