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