问题 Matlab:如何在路径上查找使用给定函数的函数


有时候我需要改变一个函数的行为。有没有一种简单的方法来查找使用该函数的函数(在matlab路径上)?


2931
2018-04-13 12:03


起源



答案:


我这样做的方法是查找包含我感兴趣的函数名称的文件。因此,我不仅看到谁调用了我的函数,还看到了他们使用的签名。

在编辑器中:编辑 - >查找文件


10
2018-04-13 13:26



+不知怎的,我从来不知道这存在,谢谢乔纳斯!通常我使用外部工具 Agent Ransack 搜索文件中的文字.. - Amro


答案:


我这样做的方法是查找包含我感兴趣的函数名称的文件。因此,我不仅看到谁调用了我的函数,还看到了他们使用的签名。

在编辑器中:编辑 - >查找文件


10
2018-04-13 13:26



+不知怎的,我从来不知道这存在,谢谢乔纳斯!通常我使用外部工具 Agent Ransack 搜索文件中的文字.. - Amro


从...开始 help deprpt

编辑:当我运行依赖项报告时,报告窗口顶部有3个复选框。其中一个默认情况下未选中,称为“显示父函数(仅限当前文件夹)”。这可能是你想要的开始,但它只适用于一个文件夹。

如果你想要更多,我建议你试试 edit deprpt.m


4
2018-04-13 12:08



deprpt与我想要的相反:它找到给定文件所依赖的文件 - 或者我错过了什么? - Alain
@Alain:我觉得你确实错过了什么,看看我做的编辑。 - High Performance Mark
这应该是公认的答案。 +1 - Doresoom
@Doresoom:我的解决方案适用于整个Matlab路径,所以我认为它不比一个不完整的解决方案更糟糕。仍然,+1取消-1 - Jonas
@Jonas:我完全同意你的解决方案是有效的 - 得到我的投票。对不起,个人喜好只是通过这里显示。 - Doresoom


我会使用像grep这样的工具。我发布了一个名为的工具 mgrep 在几年前的文件交换。它可以在m文件的整个目录中搜索任何给定的字符串,并以递归方式搜索到子目录。因此,要在我的目录中查找调用fminsearch的函数,我只需在命令行执行此操作。

mgrep( 'fminsearch', '', '节目', 'off')中 搜索目录(ies)......

/Users/woodchips/Desktop/My_FEX/cylinderfit.m /Users/woodchips/Desktop/My_FEX/fminspleas.m /Users/woodchips/Desktop/My_FEX/fminspleas2.m /Users/woodchips/Desktop/My_FEX/fminspleas3.m /Users/woodchips/Desktop/My_FEX/fminspleasnnls.m /Users/woodchips/Desktop/My_FEX/BoundedFSOLVE/fsolvebnd.m /Users/woodchips/Desktop/My_FEX/FMINSEARCHBND/fminsearchbnd.m ...


2
2018-04-13 22:46





你的意思是寻找依赖?那将是工具 - >显示依赖性报告


-1
2018-04-13 12:10



tools - > show dependency report与我想要的完全相反:它找到给定文件所依赖的文件 - Alain