Если необходимо знать то, что другие функции и пишет сценарий программы, зависит от, используйте один из методов, описанных ниже.
Для простого отображения всех программных файлов, на которые ссылается конкретная функция, выполните эти шаги:
Введите clear
functions
, чтобы очистить все функции из памяти (см. Примечание ниже).
Выполните функцию, которую вы хотите проверить. Обратите внимание на то, что аргументы функции, которые вы принимаете решение использовать на этом шаге, важны, потому что можно получить различные результаты при вызывании той же функции с различными аргументами.
Введите inmem
, чтобы отобразить все программные файлы, которые использовались, когда функция запустилась. Если вы хотите видеть, какие файлы MEX использовались также, задают дополнительный вывод:
[mfiles, mexfiles] = inmem
Для более подробного отображения зависимой функциональной информации используйте функцию matlab.codetools.requiredFilesAndProducts
. В дополнение к программным файлам matlab.codetools.requiredFilesAndProducts
показывает, от каких продуктов MathWorks® конкретная функция зависит. Если у вас есть функция, myFun
, который вызывает к функции edge
в Обработке изображений Toolbox™:
[fList,pList] = matlab.codetools.requiredFilesAndProducts('myFun.m');
fList
fList = 'C:\work\myFun.m'
Единственный необходимый программный файл, сам функциональный файл, myFun
.
{pList.Name}'
ans = 'MATLAB' 'Image Processing Toolbox'
Файл, myFun.m
, требует и MATLAB® и Image Processing Toolbox.
Отчет Зависимости показывает зависимости среди файлов кода MATLAB в папке. Используйте этот отчет определить:
Какие файлы в папке требуются другими файлами в папке
Если какие-либо файлы в текущей папке перестанут работать, если вы удалите файл
Если какие-либо названные файлы отсутствуют в текущей папке
Отчет не перечисляет:
Файлы в папке toolbox/matlab
, потому что каждый пользователь MATLAB имеет те файлы.
Поэтому, если вы используете функциональный файл, что тени файл встроенной функции, MATLAB исключает оба файла из списка.
Файлы называются из анонимных функций.
Суперкласс для файла класса.
Файлы называются от eval
, evalc
, run
, load
, указателей на функцию и обратных вызовов.
MATLAB не разрешает эти файлы до времени выполнения, и поэтому Отчет Зависимости не может обнаружить их.
Некоторые файлы метода.
Отчет Зависимости находит конструкторов класса, которых вы вызываете в файле MATLAB. Однако любые методы, которые вы выполняете на полученном объекте, неизвестны отчету. Эти методы могут существовать в файле classdef
как файлы отдельного метода или файлы, принадлежащие суперклассу или суперклассам файла метода.
Чтобы обеспечить значимые результаты, Отчет Зависимости требует следующего:
Путь поиска файлов, когда вы запускаете отчет, эквивалентен, когда вы петляете в папке. (Таким образом, текущая папка наверху пути поиска файлов.)
Файлы в папке, для которой вы запускаете отчет, не изменяют путь поиска файлов или в противном случае управляют им.
Файлы в папке не загружают переменные, или в противном случае создают столкновения имени, которые приводят к различным элементам программы с тем же именем.
Не используйте Отчет Зависимости определить, какие файлы кода MATLAB кто-то еще должен петлять. Вместо этого используйте функцию matlab.codetools.requiredFilesAndProducts
.
Используйте панель Текущей папки, чтобы перейти к папке, содержащей файлы, для которых вы хотите представить Отчет Зависимости.
На панели Текущей папки щелкните, и затем выберите Reports> Dependency Report.
Отчет Зависимости открывается в веб-браузере MATLAB.
Если вы хотите, выберите одну или несколько опций в рамках отчета, можно следующим образом:
Чтобы видеть список всех файлов кода MATLAB (дочерние элементы), вызванные каждым файлом в папке (родительский элемент), выберите дочерние функции Show.
Отчет указывает, где каждая дочерняя функция находится, например, в заданном тулбоксе. Если отчет указывает, что местоположение дочерней функции неизвестно, это может быть потому что:
Дочерняя функция не находится на пути поиска файлов.
Дочерняя функция не находится в текущей папке.
Файл был перемещен или удален.
Чтобы перечислить файлы, которые вызывают каждый файл кода MATLAB, выберите родительские функции Show.
Отчет ограничивает родительское (вызов) функции к функциям в текущей папке.
Чтобы включать локальные функции в отчет, выберите подфункции Show. Отчет перечисляет локальные функции непосредственно после основной функции и подсвечивает их в сером.
Нажмите Run Report on Current Folder.
Следующее изображение показывает Отчет Зависимости. Это указывает, что chirpy.m
вызывает два файла в Обработке сигналов Toolbox™ и один в Image Processing Toolbox. Это также показывает, что go.m
вызывает mobius.m
, который находится в текущей папке.
Отчет Зависимости включает в себя следующее:
Список файлов MATLAB
Список файлов в папке, относительно которой вы запустили Отчет Зависимости. Щелкните по ссылке в этом столбце, чтобы открыть файл в Редакторе.
Дочерние элементы
Функция или функции вызваны файлом MATLAB.
Щелкните по ссылке в этом столбце, чтобы открыть файл MATLAB, перечисленный в той же строке и перейти к первой ссылке на вызванную функцию. Например, предположите, что ваш Отчет Зависимости появляется как показано в предыдущем изображении. Нажатие \images\images\erode.m открывает chirpy.m
и устанавливает курсор в первой строке, это ссылается на erode
. Другими словами, это не открывает erode.m
m.
Несколько методов класса
Поскольку отчет является статическим анализом, он не может определить типы данных во время выполнения и, поэтому, не может идентифицировать конкретные методы класса, требуемые файлом. Если несколько методов класса совпадают с методом, на который ссылаются, Отчет Зависимости вставляет ссылку вопросительного знака рядом с именем файла. Вопросительный знак появляется в следующем изображении.
Щелкните по ссылке вопросительного знака, чтобы перечислить методы класса с указанным именем, которое может использовать MATLAB. MATLAB перечисляет почти все файлы метода на пути поиска файлов, которые совпадают с заданным файлом метода (в этом случае, freqresp.m
m. Не будьте заинтересованы, включает ли список методы классов и встроенных функций MATLAB, которые незнакомы вам.
Не необходимо для вас определить, какой файл MATLAB будет использовать. MATLAB определяет, какой метод использовать в зависимости от объекта, который программа вызывает во время выполнения.