Как я могу сгенерировать список зависимостей функций в MATLAB? - PullRequest
36 голосов
/ 18 сентября 2008

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

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

Ответы [ 2 ]

35 голосов
/ 19 сентября 2008

Для новых версий 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 (публикация 2015a) используют вместо matlab.codetools.requiredFilesAndProducts.

Показать ответы

EDIT:

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

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

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

6 голосов
/ 14 марта 2015

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

или doc matlab.codetools.requiredFilesAndProducts

, поскольку depfun помечен для удаления в будущем выпуске.

...