Как я могу сгенерировать список зависимостей функций в MATLAB?

Чтобы распределить функцию, которую я написал, которая зависит от других написанных мной функций, которые имеют свои собственные зависимости и т. Д., Не распространяя каждый m-файл, который я когда-либо писал, мне нужно выяснить, что представляет собой полный список зависимостей для данного m-файла. Есть ли встроенный / свободно загружаемый способ сделать это?

В частности, меня интересуют решения для MATLAB 7.4.0 (R2007a), но если есть другой способ сделать это в более старых версиях, обязательно добавьте их здесь.

    Для новых выпусков Matlab (например, 2007 или 2008) вы можете использовать встроенные функции:

    1. mlint
    2. отчет о зависимости и
    3. отчет о покрытии

    Другой вариант – использовать профилировщик Matlab. Команда является профилем, ее также можно использовать для отслеживания зависимостей. Чтобы использовать профиль, вы можете сделать

    >> 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. depfun
    2. depdir

    Например,

     >> deps = depfun('foo'); 

    дает структуру, deps, которая содержит все зависимости foo.m.

    Из ответов 2 и 3 более новые версии MATLAB (post 2015a) вместо этого используют matlab.codetools.requiredFilesAndProducts .

    Посмотри ответы

    РЕДАКТИРОВАТЬ:

    Предостережения благодаря комментариям @Mike Katz

    • Помните, что Profiler будет показывать только файлы, которые были фактически использованы в этих запусках, поэтому, если вы не проходите через каждую ветку, у вас могут быть дополнительные зависимости. Отчет о зависимостях является хорошим инструментом, но разрешает только статические зависимости от пути и только для файлов в одном каталоге.

    • Depfun более надежный, но дает вам все возможное, о чем он может думать, и все еще пропускает LOAD и EVAL.

    Для MATLAB 2015a и более поздних MATLAB 2015a лучше всего посмотреть на matlab.codetools.requiredFilesAndProducts

    или doc matlab.codetools.requiredFilesAndProducts

    потому что depfun помечен для удаления в будущей версии.

    Давайте будем гением компьютера.