Объявить функцию как внешнюю и выполнить ее в MATLAB
coder.extrinsic( объявляет function)function как внешняя функция. Генератор кода не создает код для тела внешней функции и вместо этого использует механизм MATLAB ® для выполнения вызова. Эта функция доступна только в том случае, если модуль MATLAB доступен во время выполнения. Примеры ситуаций, в которых доступен механизм MATLAB, включают выполнение функций MEX, моделирование Simulink ® или вызовы функций во время генерации кода (также известное как время компиляции).
Во время генерации автономного кода генератор кода пытается определить, влияет ли внешняя функция на выход функции, в которой она вызывается - например, возвращая 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 для создания функции MEX отключает проверку непротиворечивости постоянных глобальных данных между функциями MATLAB и MEX после вызовов внешних функций.
См. раздел Создание кода для глобальных данных.
Внешние вызовы функций имеют некоторые издержки, которые могут повлиять на производительность. Входные данные, передаваемые во внешнем вызове функции, должны быть переданы в MATLAB, что требует создания копии данных. Если функция имеет какие-либо выходные данные, эти данные должны быть перенесены обратно в среду функции MEX, которая также требует копирования.
Генератор кода не поддерживает использование coder.extrinsic для вызова функций, расположенных в частной папке.
Генератор кода не поддерживает использование coder.extrinsic для вызова локальных функций.
Генератор кода автоматически обрабатывает многие общие функции визуализации MATLAB, такие как plot, disp, и figure, как внешний. Нет необходимости явно объявлять их как внешние функции с помощью coder.extrinsic.
Используйте coder.screener для определения функций, которые необходимо объявить как внешние. Эта функция запускает инструмент готовности к генерации кода, который просматривает код MATLAB для функций и функций, которые не поддерживаются для генерации кода.