coder.extrinsic
声明外部函数
语法
描述
coder.extrinsic (
声明函数
)函数
作为一个外在函数。代码生成器并不为外部函数体生成代码,而是使用MATLAB®引擎执行调用。此功能仅当MATLAB引擎在MEX函数、Simulink中可用时才可用金宝app®模拟,或在编译时调用期间。
在独立代码生成过程中,代码生成器试图确定外部函数是否会影响调用它的函数的输出—例如通过返回mxArrays
到输出变量。如果输出没有变化,代码生成器继续进行代码生成,但从生成的代码中排除外部函数。否则,代码生成器将产生编译错误。
你不能使用coder.ceval
在您声明为外部的函数上使用coder.extrinsic
.
coder.extrinsic
在代码生成之外被忽略。
coder.extrinsic (function1,...functionN)
声明function1
通过functionN
非本征函数。
编码器(
允许在调用外部函数之前和之后在MATLAB和MEX函数之间同步全局数据的同步:
, function1,…functionN)function1
通过functionN
.如果只有少数外部调用使用或修改全局数据,则通过将全局同步模式设置为,在所有外部函数调用之前和之后关闭同步在mex函数的入口和出口
.使用的同步:
选项仅为修改全局数据的外部调用启用同步。
对于恒定的全局数据,允许在调用外部函数后验证MATLAB和MEX函数之间的一致性。
看到为全局数据生成代码.
编码器(
禁止在调用外部函数之前和之后在MATLAB和MEX函数之间同步全局数据“同步:掉”
, function1,…functionN)function1
通过functionN
.如果大多数外部调用使用或修改全局数据,但少数调用不使用“同步:掉”
选项关闭不修改全局数据的外部调用的同步。
对于恒定的全局数据,禁用在调用外部函数后验证MATLAB和MEX函数之间的一致性。
看到为全局数据生成代码.
例子
输入参数
限制
外部函数调用有一些可能影响性能的开销。在外部函数调用中传递的输入数据必须提供给MATLAB,这需要制作数据的副本。如果函数有任何输出数据,则必须将该数据传输回MEX函数环境,这也需要一份副本。
的代码生成器不支持使用金宝app
coder.extrinsic
调用位于私有文件夹中的函数。的代码生成器不支持使用金宝app
coder.extrinsic
调用局部函数。