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

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

How can I generate a list of function dependencies in MATLAB?

为了分发我编写的函数,该函数依赖于我编写的其他函数,这些函数有自己的依赖关系等等,而不分发我曾经编写的每个 m 文件,我需要弄清楚完整列表的依赖项是针对给定的 m 文件的。是否有内置/可免费下载的方式来执行此操作?

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


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

  • 林特
  • 依赖报告和
  • 覆盖率报告
  • 另一种选择是使用 Matlab 的分析器。该命令是配置文件,它也可以用于跟踪依赖关系。要使用配置文件,您可以执行

    1
    2
    3
    4
     profile on   % turn profiling on
     foo;         % entry point to your matlab function or script
     profile off  % turn profiling off
     profview     % view the report

    如果分析器不可用,那么以下两个函数可能是(对于 pre-MATLAB 2015a):

  • 德普芬
  • 目录
  • 例如,

    1
     deps = depfun('foo');

    给出了一个结构,deps,它包含了 foo.m.

    的所有依赖

    从答案 2 和 3 来看,较新版本的 MATLAB(2015a 之后)改用 matlab.codetools.requiredFilesAndProducts

    查看答案

    编辑:

    感谢@Mike Katz 的评论

    • Remember that the Profiler will only
      show you files that were actually used
      in those runs, so if you don't go
      through every branch, you may have
      additional dependencies. The
      dependency report is a good tool, but
      only resolves static dependencies on
      the path and just for the files in a
      single directory.

    • Depfun is more reliable but gives you
      every possible thing it can think of,
      and still misses LOAD's and EVAL's.


    对于 MATLAB 2015a 及更高版本,您最好查看 matlab.codetools.requiredFilesAndProducts

    doc matlab.codetools.requiredFilesAndProducts

    因为 depfun 被标记为在未来的版本中被删除。


    推荐阅读

      更新文件命令linux?

      更新文件命令linux?,工作,系统,地址,信息,时间,命令,目录,基础,标准,网络,lin

      linux下读取文件命令?

      linux下读取文件命令?,系统,工作,地址,数字,图片,信息,网络,命令,文件,一致,l

      linux改文件夹名命令?

      linux改文件夹名命令?,名字,软件,命令,文件,系统,目录,目标,文件名,源文件,

      linux建文件命令格式?

      linux建文件命令格式?,系统,名字,名称,时间,密码,命令,文件,文件夹,不了,数

      下载文件的命令linux?

      下载文件的命令linux?,平台,工具,服务,密码,软件,网络,位置,代理,手机,工作,

      linux命令文件传输?

      linux命令文件传输?,系统,数据,命令,文件,基本知识,源文件,目录,目标,功能,

      linux文件全选命令?

      linux文件全选命令?,电脑,系统,环境,代码,平台,服务,快捷键,文件,命令,权限,l

      linux浏览文件类命令?

      linux浏览文件类命令?,系统,信息,数据,情况,命令,标准,时间,文件,概念,管理,

      linux打包文件夹命令?

      linux打包文件夹命令?,系统,工具,管理,图片,文件,命令,位置,软件,目录,格式,l

      linux中统计文件命令?

      linux中统计文件命令?,系统,信息,数据,情况,工作,文件,时间,档案,标准,名称,L

      linux重名名文件命令?

      linux重名名文件命令?,图片,名称,名字,文件,命令,位置,代码,软件,系统,文件

      linux的建立文件命令?

      linux的建立文件命令?,名称,系统,时间,名字,命令,文件夹,位置,密码,不了,文

      linux06文件命令?

      linux06文件命令?,数字,系统,工作,第一,名字,信息,管理,文件,目录,命令,linux

      linux将文件备份命令?

      linux将文件备份命令?,系统,密码,设备,软件,通讯,较大,认证,服务,数据,文件,L

      linux扩展文件命令?

      linux扩展文件命令?,工作,地址,系统,信息,命令,目录,管理,情况,文件,标准,Lin

      linux命令新增文件夹?

      linux命令新增文件夹?,系统,名字,首次,名称,新增,文件,命令,文件夹,地址,密

      linux推送文件命令?

      linux推送文件命令?,地址,系统,情况,工作,命令,文件,电脑,密码,信息,目录,Lin

      linux文件替换命令行?

      linux文件替换命令行?,资料,命令,文件,数据,名称,系统,实时,工作,字符串,批

      linux可生成文件命令?

      linux可生成文件命令?,名字,命令,名称,文件,文件夹,位置,数据,密码,时间,电