MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   资料存档 (https://www.labfans.com/bbs/forumdisplay.php?f=72)
-   -   如何在MATLAB中生成函数依赖项列表? (https://www.labfans.com/bbs/showthread.php?t=22545)

poster 2019-12-07 23:17

如何在MATLAB中生成函数依赖项列表?
 
为了分发我编写的依赖于我编写的其他函数的函数,这些函数具有自己的依赖关系,依此类推,而又不分发我曾经编写的每个m文件,我需要弄清楚什么是依赖关系的完整列表给定的m文件。有内置/免费下载的方式可以做到这一点吗?

我特别对MATLAB 7.4.0(R2007a)的解决方案感兴趣,但是如果在旧版本中有其他解决方法,请务必在此处添加它们。

回答:
对于较新的Matlab版本(例如2007或2008),您可以使用内置函数:
[LIST=1][*] int[*]依赖报告和[*]覆盖率报告[/LIST]另一种选择是使用Matlab的探查器。该命令是配置文件,它也可用于跟踪依赖关系。要使用个人资料,您可以

>> 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之前的版本):
[LIST=1][*]德普芬[*]德普迪尔[/LIST]例如,

>> deps = depfun('foo'); 给出了一个结构deps,其中包含foo.m的所有依赖项。

从答案[URL="https://stackoverflow.com/a/29049918/4612"]2[/URL]和[URL="https://stackoverflow.com/a/34621308/4612"]3中[/URL] ,较新版本的MATLAB(2015a版之后)改用matlab.codetools.requiredFilesAndProducts 。

查看答案

编辑:

注意@Mike Katz的评论
[INDENT][LIST][*]请记住,探查器将仅向您显示在这些运行中实际使用的文件,因此,如果不遍历每个分支,则可能会有其他依赖性。依赖性报告是一个很好的工具,但是只能解决路径上的静态依赖性以及仅针对单个目录中文件的静态依赖性。
[*] Depfun更加可靠,但是为您提供了它可以想到的所有可能的东西,但仍然错过了LOAD和EVAL。
[/LIST][/INDENT]


所有时间均为北京时间。现在的时间是 23:17

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.