Если необходимо знать то, что другие функции и пишет сценарий программы, зависит от, используйте один из методов, описанных ниже.
Для простого отображения всех программных файлов, на которые ссылается конкретная функция, выполните эти шаги:
Введите clear
functions
очистить все функции из памяти (см. Примечание ниже).
Выполните функцию, которую вы хотите проверять. Обратите внимание на то, что аргументы функции, которые вы принимаете решение использовать на этом шаге, важны, потому что можно получить различные результаты при вызывании той же функции с различными аргументами.
Введите inmem
отобразить все программные файлы, которые использовались, когда функция запустилась. Если вы хотите видеть, какие файлы MEX использовались также, задают дополнительный выход:
[mfiles, mexfiles] = inmem
Для более подробного отображения зависимой функциональной информации используйте matlab.codetools.requiredFilesAndProducts
функция. В дополнение к программным файлам, matlab.codetools.requiredFilesAndProducts
показывает, от каких продуктов MathWorks® конкретная функция зависит. Если у вас есть функция, myFun
, это вызывает к edge
функция в Image Processing 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
запущенный
загрузка
, указатели на функцию и коллбэки.
MATLAB не разрешает эти файлы до времени выполнения, и поэтому Отчет Зависимости не может обнаружить их.
Некоторые файлы метода.
Отчет Зависимости находит конструкторов класса, которых вы вызываете в файле MATLAB. Однако любые методы, которые вы выполняете на полученном объекте, неизвестны отчету. Эти методы могут существовать в classdef
файл, как файлы отдельного метода или файлы, принадлежащие суперклассу или суперклассам файла метода.
Чтобы обеспечить значимые результаты, Отчет Зависимости требует следующего:
Путь поиска файлов, когда вы запускаете отчет, эквивалентен, когда вы петляете в папке. (Таким образом, текущая папка наверху пути поиска файлов.)
Файлы в папке, для которой вы запускаете отчет, не изменяют путь поиска файлов или в противном случае управляют им.
Файлы в папке не загружают переменные, или в противном случае создают столкновения имени, которые приводят к различным элементам программы с тем же именем.
Не используйте Отчет Зависимости определить, какие файлы кода MATLAB кто-то еще должен петлять. Вместо этого используйте matlab.codetools.requiredFilesAndProducts
функция.
Используйте панель Текущей папки, чтобы перейти к папке, содержащей файлы, для которых вы хотите представить Отчет Зависимости.
На панели Текущей папки щелкните, и затем выберите Reports> Dependency Report.
Отчет Зависимости открывается в веб-браузере MATLAB.
Если вы хотите, выберите одну или несколько опций в рамках отчета, можно следующим образом:
Чтобы видеть список всех файлов кода MATLAB (дочерние элементы), вызванные каждым файлом в папке (родительский элемент), выберите Show child functions.
Отчет указывает, где каждая дочерняя функция находится, например, в заданном тулбоксе. Если отчет указывает, что местоположение дочерней функции неизвестно, это может быть потому что:
Дочерняя функция не находится на пути поиска файлов.
Дочерняя функция не находится в текущей папке.
Файл был перемещен или удален.
Чтобы перечислить файлы, которые вызывают каждый файл кода MATLAB, выберите Show parent functions.
Отчет ограничивает родительское (вызов) функции к функциям в текущей папке.
Чтобы включать локальные функции в отчет, выберите Show subfunctions. Отчет перечисляет локальные функции непосредственно после основной функции и подсвечивает их в сером.
Нажмите Run Report on Current Folder.
Следующее изображение показывает Отчет Зависимости. Это указывает на тот chirpy.m
вызовы два файла в Signal Processing Toolbox™ и один в Image Processing Toolbox. Это также показывает тот go.m
вызовы mobius.m
, который находится в текущей папке.
Отчет Зависимости включает в себя следующее:
Список файлов MATLAB
Список файлов в папке, относительно которой вы запустили Отчет Зависимости. Щелкните по ссылке в этом столбце, чтобы открыть файл в Редакторе.
Дочерние элементы
Функция или функции вызваны файлом MATLAB.
Щелкните по ссылке в этом столбце, чтобы открыть файл MATLAB, перечисленный в той же строке и перейти к первой ссылке на вызванную функцию. Например, предположите, что ваш Отчет Зависимости появляется как показано в предыдущем изображении. Нажатие на \images\images\erode.m открывает chirpy.m
и устанавливает курсор в первой линии, это ссылается на erode
. Другими словами, это не открывает erode.m
.
Несколько методов класса
Поскольку отчет является статическим анализом, он не может определить типы данных во время выполнения и, поэтому, не может идентифицировать конкретные методы класса, требуемые файлом. Если несколько методов класса совпадают с методом, на который ссылаются, Отчет Зависимости вставляет ссылку вопросительного знака рядом с именем файла. Вопросительный знак появляется в следующем изображении.
Щелкните по ссылке вопросительного знака, чтобы перечислить методы класса с указанным именем, которое может использовать MATLAB. MATLAB перечисляет почти все файлы метода на пути поиска файлов, которые совпадают с заданным файлом метода (в этом случае, freqresp.m
). Не будьте заинтересованы, включает ли список методы классов и встроенных функций MATLAB, которые незнакомы вам.
Не необходимо для вас определить, какой файл MATLAB будет использовать. MATLAB определяет, какой метод использовать в зависимости от объекта, который программа вызывает во время выполнения.