1

我一直在阅读别人的matlab代码,但我不知道代码的结构。我的意思是我想知道函数的层次结构,哪个函数使用哪个函数。我正在阅读代码以弄清楚这一点,但这需要很多时间。

那么有没有其他方法可以让我在不阅读整个内容的情况下看到这个层次结构?老实说,它开始变得混乱。也许MatLab有一个内置的功能!我找到了这个:

如何在 MATLAB 中生成函数依赖项列表?

但这似乎没有帮助!

4

4 回答 4

3

MATLAB 分析器将向您展示您的代码调用了哪些函数(以及更多启动信息),并允许您单击函数调用的层次结构。您可以调用profile on然后运行您的代码,然后调用profile offand profile viewer,或者您可以简单地调用profile viewer并键入一行代码以在顶部的编辑框中运行。

于 2013-05-16T08:14:28.180 回答
1

使用 MATLAB 中提供的依赖性报告:http: //www.mathworks.co.uk/help/matlab/matlab_prog/identify-dependencies.html

File Exchange 上还有一些工具,例如fdep

于 2013-05-16T11:35:24.053 回答
0

我要做的一件事就是简单地将每个函数放在函数的开头fprintf("inside function <name>/n");和结尾,函数的名称fprintf("leaving function <name>/n");在哪里<name>

这将为您提供一个非常具体的列表,其中列出了哪个函数正在调用哪个函数(基于它们出现的顺序)。像这样的另一件事是放置fprintf("function <name1> calling function <name2>/n");,以便您可以更明确地了解哪个函数正在被哪个函数调用。

于 2013-05-15T19:47:39.033 回答
0

不知道显示可见或依赖函数的函数。但是基本规则是:

1) 只有 .m 文件中的第一个函数(通常必须与文件本身同名)在该文件之外可见。

2) 如果文件在 matlab 路径中,任何函数都可以看到任何顶层(见 1.)函数。Matlab 可以向您显示路径,以便您知道它在哪里狩猎。

3) 路径的顺序很重要,在路径中找到的名为 foo 的函数的第一个实例将被调用。显然,当前目录位于路径的顶部。

3) 给定文件中的所有函数都可以看到该文件中的所有其他函数。

这就是基础。毫无疑问,还有其他规则,可能还有例外。但这种理解通常对我很有帮助。

显然,确定正在调用哪个函数的最简单方法是在编辑器中单击它并打开它。

于 2013-05-15T19:13:09.973 回答