【问题标题】:Matlab: how to find functions on path that use a given functionMatlab:如何在使用给定函数的路径上查找函数
【发布时间】:2011-10-21 09:15:35
【问题描述】:

有时我需要更改函数的行为。有没有一种简单的方法可以找到使用该函数的函数(在 matlab 路径上)?

【问题讨论】:

    标签: matlab dependencies code-analysis


    【解决方案1】:

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

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

    【讨论】:

    • +1 不知何故我从来不知道这存在,谢谢乔纳斯!通常我使用外部工具Agent Ransack 来搜索文件中的文本..
    【解决方案2】:

    help deprpt开头。

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

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

    【讨论】:

    • deprpt 与我想要的相反:它找到给定文件所依赖的文件 - 或者我错过了什么?
    • @Doresoom:我的解决方案适用于整个 Matlab 路径,所以我不认为它比不完整的解决方案差那么多。不过,+1 可以取消 -1
    • @Jonas:我完全同意你的解决方案是有效的——得到我的投票。抱歉,个人喜好在这里显示。
    【解决方案3】:

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

    mgrep('fminsearch','.','show','off') 正在搜索目录...

    /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 ...

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • tools -> show dependency report 与我想要的相反:它找到给定文件所依赖的文件
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 2014-07-08
      • 2012-02-26
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      相关资源
      最近更新 更多