Анализатор Зависимостей определяет необходимые файлы и дополнения для вашего проекта или модели. Анализ охватывает широкую область значений зависимостей, включая модели-ссылки, ссылки на подсистемы, связанные библиотеки, MATLAB® и C/C++
код, Stateflow® графики, файлы данных, S-функции и документы с требованиями.
Когда анализатор Зависимостей встречается с кодом MATLAB, таким как в модели или блочном коллбэке или в .m
file S-функция, она пытается идентифицировать файлы, на которые ссылается. Для получения дополнительной информации см. «Ограничения анализа».
Для файлов в корневой папке MATLAB анализатор зависимостей показывает только необходимые продукты. Он не анализирует зависимости.
Анализатор Зависимостей идентифицирует зависимости внутри пользовательских дополнений и зависимости, которые были введены генерацией кода или кодом MATLAB в параметрах модели. Эти опции по умолчанию отключены, поскольку они могут занимать много времени для больших проектов.
Чтобы задать возможности анализа, на панели инструментов анализатора зависимостей щелкните Analyze и выберите одну или несколько из следующих опций:
Опция | Дефолт | Описание |
---|---|---|
C/C++ Code | На | Анализируйте зависимости, введенные C/C++ файлы кода. |
Add-Ons | Прочь | Анализируйте зависимости внутри дополнений. |
Model Parameters | Прочь | Анализируйте зависимости, введенные кодом MATLAB в параметрах блока модели. |
Generated Code Traceability | Прочь | Анализируйте зависимости, введенные кодом, сгенерированным из модели. |
Анализатор Зависимостей имеет ограничения, характерные для анализа кода 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 function.
Анализатор Зависимостей не поддерживает диаграммы Stateflow, которые используют MATLAB в качестве языка действий.
Некоторые MathWorks® продукты и дополнения совместно используют код и библиотеки Simulink. Анализатор Зависимостей может сообщать о зависимостях от всех из них.
Чтобы выяснить, где используется общий код, на панели Properties, в разделе Products, укажите продукт под Shared Functionalities Among: и щелкните значок папки поиска.
Анализатор Зависимостей анализирует код проекта, не оценивая его содержимое, поэтому:
Анализатор Зависимостей не добавляет глобальные переменные в выполненные функции.
Анализатор Зависимостей анализирует код внутри логических операторов, даже если он не выполняется. В следующем примере код не выполняется, но анализатор зависимостей сообщает о отсутствующей зависимости от Simulink.
if false load_system(vdp) end