为了分发我编写的函数,它依赖于我编写的其他函数,它们有自己的依赖关系等等而不分发我写过的每个m文件,我需要弄清楚依赖项的完整列表是什么对于给定的m文件.是否有内置/可免费下载的方式来做到这一点?
具体来说,我对MATLAB 7.4.0(R2007a)的解决方案感兴趣,但如果在旧版本中有不同的方法,请务必在此处添加.
对于较新版本的Matlab(例如2007或2008),您可以使用内置函数:
mlint
依赖报告和
报道报道
另一种选择是使用Matlab的分析器.该命令是profile,它也可以用于跟踪依赖项.要使用配置文件,您可以这样做
>> profile on % turn profiling on >> foo; % entry point to your matlab function or script >> profile off % turn profiling off >> profview % view the report
如果探测器不可用,那么可能还有以下两个函数(对于pre-MATLAB 2015a):
depfun
depdir
例如,
>> deps = depfun('foo');
给出一个结构,deps,它包含foo.m的所有依赖项.
从答案2和3开始,使用较新版本的MATLAB(2015a后)matlab.codetools.requiredFilesAndProducts
.
看到答案
编辑:
致谢@Mike Katz的评论
请记住,Profiler只会显示实际在这些运行中使用的文件,因此如果您没有遍历每个分支,则可能还有其他依赖项.依赖关系报告是一个很好的工具,但只解析路径上的静态依赖关系,只解析单个目录中的文件.
Depfun更可靠,但为您提供了它可以想到的所有可能的东西,并且仍然错过了LOAD和EVAL.
对于MATLAB 2015a
以后,您最好查看 matlab.codetools.requiredFilesAndProducts
要么 doc matlab.codetools.requiredFilesAndProducts
因为depfun
在将来的版本中标记为删除.