为了分发我编写的函数,该函数依赖于我编写的其他函数,这些函数有自己的依赖项等等,而不分发我编写的每个 m 文件,我需要弄清楚依赖项的完整列表是什么对于给定的 m 文件。是否有内置/免费下载的方法可以做到这一点?

具体来说,我对 MATLAB 7.4.0 (R2007a) 的解决方案感兴趣,但如果在旧版本中有不同的方法,请务必在此处添加它们。

有帮助吗?

解决方案

对于较新版本的 Matlab(例如 2007 或 2008),您可以使用内置函数:

  1. 姆林特
  2. 依赖性报告和
  3. 报道报告

另一种选择是使用 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 之前的版本):

  1. 德普芬
  2. 德普目录

例如,

>> 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 被标记为在未来版本中删除。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top