Анализатор зависимостей определяет необходимые файлы и надстройки для проекта или модели. Анализ охватывает широкий спектр зависимостей, включая ссылки на модели, ссылки на подсистемы, связанные библиотеки, MATLAB ® иC/C++ код, диаграммы Stateflow ®, файлы данных, S-функции и документы по требованиям.
Когда анализатор зависимостей обнаруживает код MATLAB, например, в модели или блоке, или в .m file S-функция, она пытается идентифицировать файлы, на которые ссылается. Дополнительные сведения см. в разделе Ограничения анализа.
Для файлов в корневой папке MATLAB анализатор зависимостей отображает только требуемые продукты. Он не анализирует зависимости.
Анализатор зависимостей определяет зависимости внутри пользовательских дополнений и зависимостей, которые были введены при создании кода или кода MATLAB в параметрах модели. Эти опции отключены по умолчанию, поскольку они могут занимать много времени для больших проектов.
Чтобы указать область анализа, на панели инструментов анализатора зависимостей щелкните Анализ (Analyze) и выберите одну или несколько из следующих опций.
| Выбор | Дефолт | Описание |
|---|---|---|
| Код C/C + + | На | Анализ зависимостей, введенных C/C++ файлы кода. |
| Надстройки | Прочь | Анализ зависимостей внутри надстроек. |
| Параметры модели | Прочь | Анализ зависимостей, введенных кодом MATLAB в параметры блока модели. |
| Отслеживание сгенерированного кода | Прочь | Анализ зависимостей, введенных кодом, созданным из модели. |
Анализатор зависимостей имеет ограничения, специфичные для анализа кода MATLAB:
Анализатор зависимостей идентифицирует входные аргументы функции только в том случае, если они представляют собой буквенные символьные векторы или строки:
load("mydatafile") load mydatafile
Если определить имя файла как переменную и передать его функции, анализатор зависимостей не сможет определить зависимость. В следующем примере, поскольку код не выполняется, анализатор зависимостей не имеет значения str. Анализатор зависимостей может сообщить об отсутствующей зависимости.
str = "mydatafile";
load(str);load, такие как fopen, xlsread, importdata, dlmread, eval, или imread.Анализатор зависимостей не всегда определяет тип автоматически. В зависимости от способа вызова метода объекта анализатор зависимостей может спутать метод с функцией и сообщить об отсутствующей зависимости.
В MATLAB метод объекта можно вызвать двумя различными способами. Например, для объекта p, можно вызвать метод addFile используя нотацию функции:
p = currentProject;
addFile(p,"myfile");p = currentProject;
p.addFile("myfile");p явно, анализатор зависимостей может спутать вызов метода, который использует нотацию функции с вызовом функции. Отчеты анализатора addFile как отсутствующая зависимость.Чтобы обойти это ограничение, используйте точечную нотацию для вызова метода или используйте аргументы для явного объявления типа переменной в функции:
function myfunction(p) arguments p matlab.project.Project end addFile(p,"myfile"); end
Анализатор зависимостей может не сообщать о некоторых блоках, необходимых для модели.
Анализатору зависимостей не удается обнаружить блоки, которые не содержат зависимостей от файлов, таких как Fixed-Point Designer™.
Чтобы включить зависимости, которые анализ не может обнаружить, добавьте в проект файл, вводящий зависимость. Сведения о создании проекта на основе модели см. в разделе Создание проекта на основе модели.
Анализатор зависимостей может не обнаружить необходимые пакеты поддержки. В нем перечислены необходимые надстройки, включая приложения и панели инструментов.
Анализатор зависимостей может не сообщать о зависимостях для динамического содержимого в маскированных блоках.
На основе параметров маскированных блоков динамические маски могут модифицировать маскированную подсистему и изменять зависимости блоков. Если динамическая маска находится в библиотеке, анализатор зависимостей не может обнаружить динамические изменения.
Анализатор зависимостей не поддерживает функции Simulink ®, вызываемые из функциональных блоков MATLAB.
Анализатор зависимостей не поддерживает диаграммы Stateflow, использующие MATLAB в качестве языка действий.
Некоторые продукты и дополнения MathWorks ® совместно используют библиотеки кода и Simulink. Анализатор зависимостей может сообщать о зависимостях для всех из них.
Чтобы выяснить, где используется общий код, на панели «Свойства» в разделе «Продукты» укажите продукт в разделе «Общие функции среди:» и щелкните значок папки поиска.![]()
Анализатор зависимостей анализирует код проекта без оценки его содержимого, поэтому:
Анализатор зависимостей не добавляет глобальные переменные в выполняемые функции.
Анализатор зависимостей анализирует код внутри логических операторов, даже если он не выполняется. В следующем примере код не выполняется, но анализатор зависимостей сообщает об отсутствующей зависимости от Simulink.
if false load_system(vdp) end