Объявите функцию как значение внешних параметров и выполните его в MATLAB
coder.extrinsic(
объявляет function
)function
как внешняя функция. Генератор кода не производит код для тела внешней функции и вместо этого использует MATLAB® механизм, чтобы выполнить вызов. Эта функциональность доступна только, когда движок MATLAB доступен во время выполнения. Примеры ситуаций, во время которых движок MATLAB доступен, включают выполнение MEX-функций, Simulink® симуляции или вызовы функции во время генерации кода (также известный как compile time).
Во время автономной генерации кода генератор кода пытается определить, влияет ли внешняя функция на выход функции, в которой это называется — например, путем возврата mxArrays
к выходной переменной. При условии, что нет никакого изменения в выходе, доходах генератора кода с генерацией кода, но не исключает внешнюю функцию из сгенерированного кода. В противном случае генератор кода производит ошибку компиляции.
Вы не можете использовать coder.ceval
на функциях, при помощи которых вы объявляете как значение внешних параметров coder.extrinsic
.
coder.extrinsic
проигнорирован за пределами генерации кода.
Примечание
Генератор кода автоматически обрабатывает много общих функций визуализации MATLAB, такой как plot
, disp
, и figure
, как значение внешних параметров. Вы не должны явным образом объявлять их, когда значение внешних параметров функционирует при помощи coder.extrinsic
.
coder.extrinsic(function1, ... ,functionN)
объявляет function1
через functionN
когда значение внешних параметров функционирует.
coder.extrinsic(
включает синхронизацию глобальных данных между выполнением MATLAB и выполнением сгенерированного кода или симуляцией Simulink до и после вызовов внешних функций '-sync:on'
, function1, ... ,functionN)function1
через functionN
. Если только несколько внешних вызовов используют или изменяют глобальные данные, выключают синхронизацию до и после всех внешних вызовов функции путем установки глобального режима синхронизации на At MEX-function entry and exit
. Используйте '-sync:on'
опция, чтобы включить синхронизацию только для внешних вызовов, которые действительно изменяют глобальные данные.
Если вы используете MATLAB Coder™, чтобы сгенерировать MEX-функцию, включает верификацию непротиворечивости постоянных глобальных данных между MATLAB и MEX-функциями после вызовов внешних функций.
Смотрите генерируют код для глобальных данных.
coder.extrinsic(
отключает синхронизацию глобальных данных между выполнением MATLAB и выполнением сгенерированного кода до и после вызовов внешних функций '-sync:off'
, function1, ... ,functionN)function1
через functionN
. Если большинство внешних вызовов использует или изменяет глобальные данные, но некоторые не делают, используйте '-sync:off'
опция, чтобы выключить синхронизацию для внешних вызовов, которые не изменяют глобальные данные.
Если вы используете MATLAB Coder, чтобы сгенерировать MEX-функцию, отключает верификацию непротиворечивости постоянных глобальных данных между MATLAB и MEX-функциями после вызовов внешних функций.
Смотрите генерируют код для глобальных данных.
Внешние вызовы функции имеют немного служебные, который может влиять на эффективность. Входные данные, который передается во внешнем вызове функции, должны быть предоставлены MATLAB, который требует создания копии данных. Если функция имеет какие-либо выходные данные, эти данные должны быть возвращены в среду MEX-функции, которая также требует копии.
Генератор кода не поддерживает использование coder.extrinsic
вызывать функции, которые расположены в частной папке.
Генератор кода не поддерживает использование coder.extrinsic
вызывать локальные функции.
Генератор кода автоматически обрабатывает много общих функций визуализации MATLAB, такой как plot
, disp
, и figure
, как значение внешних параметров. Вы не должны явным образом объявлять их, когда значение внешних параметров функционирует при помощи coder.extrinsic
.
Используйте coder.screener
функция, чтобы обнаружить, какие функции необходимо объявить как значение внешних параметров. Эта функция запускает Инструмент Готовности Генерации кода, который экранирует код MATLAB на функции и функции, которые не поддерживаются для генерации кода.