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

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

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

Что такое компоненты React? Введение в компоненты | Типы компонентов
Что такое компоненты React? Введение в компоненты | Типы компонентов
Компонент - это независимый, многократно используемый фрагмент кода, который делит пользовательский интерфейс на более мелкие части. Например, если мы...
36
0
18 187
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

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

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

Обновлено:

Предостережения благодаря комментариям @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.

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

Mike Katz 14.03.2009 17:24

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

Mike Katz 14.03.2009 17:25

Спасибо @Mik Katz за предостережения.

Azim J 14.03.2009 22:40

Попробуйте exportToZip (ссылка: mathworks.com/matlabcentral/fileexchange/10702). Выбор недели 18 сентября 2009 г. (ссылка: blogs.mathworks.com/pick/2009/09/18/…)

Samil 10.10.2009 19:16

Обновление: в MATLAB 2015b были удалены depfun и depdir (см. Ответ ниже)

gariepy 06.01.2016 00:12

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

или doc matlab.codetools.requiredFilesAndProducts

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

Другие вопросы по теме