Из MATLAB® function, можно вызвать локальные функции, поддерживаемые функции тулбокса и другие функции MATLAB. MATLAB разрешает имена функции для генерации кода следующим образом:
Схема иллюстрирует ключевые точки о том, как MATLAB разрешает вызовы функций для генерации кода:
Поиск двух путей, пути генерации кода и пути MATLAB
Пытается скомпилировать функции, если только генератор кода не определит, что он не должен компилировать их, или вы явным образом объявите их внешними.
Если функция MATLAB не поддерживается для генерации кода, можно объявить ее внешней при помощи конструкции coder.extrinsic
, как описано в Using the coder.extrinsic Конструкция. Во время симуляции генератор кода производит код для вызова внешней функции, но не генерирует внутренний код для функции. Поэтому симуляция может выполняться только на платформах, где установлено программное обеспечение MATLAB. Во время генерации автономного кода генератор кода пытается определить, влияет ли внешняя функция на выход функции, в которой она вызывается - например, путем возврата mxArrays
в переменный выход. Если выход не меняется, генерация кода продолжается, но внешняя функция исключается из сгенерированного кода. В противном случае возникают ошибки компиляции.
Генератор кода обнаруживает вызовы многих распространенных функций визуализации, таких как plot
, disp
, и figure
. Программа обрабатывает эти функции как внешние функции, но вы не должны объявлять их внешними, используя coder.extrinsic
функция.
Разрешает тип файла на основе правил приоритета, описанных в Разрешении типов файлов на пути генерации кода
Во время генерации кода вызовы функций разрешаются на двух путях:
Путь генерации кода
MATLAB сначала ищет этот путь во время генерации кода. Путь генерации кода содержит функции тулбокса, поддерживаемые для генерации кода.
Путь MATLAB
Если функция не находится в пути генерации кода, MATLAB ищет этот путь.
MATLAB применяет те же правила диспетчера при поиске каждого пути (см. «Порядок приоритета функций»).
Используйте путь генерации кода, чтобы переопределить функцию MATLAB на пользовательскую версию. Файл в пути генерации кода затеняет файл с таким же именем в пути MATLAB.
Для получения дополнительной информации о том, как добавить дополнительные папки в путь генерации кода, смотрите Пути и Setup файловой инфраструктуры (MATLAB Coder).