Разрешение вызовов функций для генерации кода

Из MATLAB® function, можно вызвать локальные функции, поддерживаемые функции тулбокса и другие функции MATLAB. MATLAB разрешает имена функции для генерации кода следующим образом:

Ключевые точки при разрешении вызовов функций

Схема иллюстрирует ключевые точки о том, как MATLAB разрешает вызовы функций для генерации кода:

  • Поиск двух путей, пути генерации кода и пути MATLAB

    См. «КомпИлиляция порядка поиска пути».

  • Пытается скомпилировать функции, если только генератор кода не определит, что он не должен компилировать их, или вы явным образом объявите их внешними.

    Если функция MATLAB не поддерживается для генерации кода, можно объявить ее внешней при помощи конструкции coder.extrinsic, как описано в Using the coder.extrinsic Конструкция. Во время симуляции генератор кода производит код для вызова внешней функции, но не генерирует внутренний код для функции. Поэтому симуляция может выполняться только на платформах, где установлено программное обеспечение MATLAB. Во время генерации автономного кода генератор кода пытается определить, влияет ли внешняя функция на выход функции, в которой она вызывается - например, путем возврата mxArrays в переменный выход. Если выход не меняется, генерация кода продолжается, но внешняя функция исключается из сгенерированного кода. В противном случае возникают ошибки компиляции.

    Генератор кода обнаруживает вызовы многих распространенных функций визуализации, таких как plot, disp, и figure. Программа обрабатывает эти функции как внешние функции, но вы не должны объявлять их внешними, используя coder.extrinsic функция.

  • Разрешает тип файла на основе правил приоритета, описанных в Разрешении типов файлов на пути генерации кода

Скомпилируйте порядок поиска пути

Во время генерации кода вызовы функций разрешаются на двух путях:

  1. Путь генерации кода

    MATLAB сначала ищет этот путь во время генерации кода. Путь генерации кода содержит функции тулбокса, поддерживаемые для генерации кода.

  2. Путь MATLAB

    Если функция не находится в пути генерации кода, MATLAB ищет этот путь.

MATLAB применяет те же правила диспетчера при поиске каждого пути (см. «Порядок приоритета функций»).

Когда использовать путь генерации кода

Используйте путь генерации кода, чтобы переопределить функцию MATLAB на пользовательскую версию. Файл в пути генерации кода затеняет файл с таким же именем в пути MATLAB.

Дополнительные сведения о том, как добавить дополнительные папки в путь генерации кода, см. в разделах Пути и Setup файловой инфраструктуры.