如何在 MATLAB 中生成函数依赖项列表?
-
01-07-2019 - |
题
为了分发我编写的函数,该函数依赖于我编写的其他函数,这些函数有自己的依赖项等等,而不分发我编写的每个 m 文件,我需要弄清楚依赖项的完整列表是什么对于给定的 m 文件。是否有内置/免费下载的方法可以做到这一点?
具体来说,我对 MATLAB 7.4.0 (R2007a) 的解决方案感兴趣,但如果在旧版本中有不同的方法,请务必在此处添加它们。
解决方案
对于较新版本的 Matlab(例如 2007 或 2008),您可以使用内置函数:
- 姆林特
- 依赖性报告和
- 报道报告
另一种选择是使用 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
如果探查器不可用,则可能有以下两个函数(对于 MATLAB 2015a 之前的版本):
- 德普芬
- 德普目录
例如,
>> deps = depfun('foo');
给出一个结构体 deps,它包含 foo.m 的所有依赖项。
来自答案 2, , 和 3, ,较新版本的 MATLAB(2015a 后)使用 matlab.codetools.requiredFilesAndProducts
反而。
查看答案
编辑:
感谢@Mike Katz 评论的注意事项
请记住,Profiler只会向您显示这些运行中实际使用的文件,因此,如果您不浏览每个分支,则可能会有其他依赖关系。依赖关系报告是一个不错的工具,但仅解决路径上的静态依赖项,而仅解决单个目录中的文件。
DepFun更可靠,但为您提供了可以想到的一切可能的事情,并且仍然错过了负载和评估。
其他提示
为了 MATLAB 2015a
稍后你最好看看 matlab.codetools.requiredFilesAndProducts
或者 doc matlab.codetools.requiredFilesAndProducts
因为 depfun
被标记为在未来版本中删除。