coder.extrinsic
将函数声明为外部函数并在内部执行MATLAB
语法
描述
coder.extrinsic (
声明函数
)函数
作为一个外在函数。代码生成器不为外部函数体生成代码,而是使用MATLAB®引擎执行调用。只有在执行期间MATLAB引擎可用时,此功能才可用。MATLAB引擎可用的情况示例包括执行MEX函数,Simulink万博1manbetx®模拟,或代码生成时的函数调用(也称为编译时)。
在独立代码生成期间,代码生成器尝试确定外部函数是否只具有副作用(例如,通过显示图形),还是它是否影响调用它的函数的输出(例如,通过向输出变量返回值)。如果输出没有变化,代码生成器将继续进行代码生成,但将外部函数从生成的代码中排除。否则,代码生成器将产生编译错误。
你不能使用coder.ceval
声明为外部的函数coder.extrinsic
。此外,coder.extrinsic
指令在代码生成之外被忽略。
请注意
代码生成器自动处理许多常见的MATLAB可视化函数,例如情节
,disp
,数字
,是外在的。您不必使用显式地将它们声明为外部函数coder.extrinsic
。
coder.extrinsic (function1,..。functionN)
声明function1
通过functionN
作为外部函数。
coder.extrinsic (
在调用外部函数之前和之后,实现MATLAB执行和生成代码执行或Simulink仿真之间的全局数据同步万博1manbetx的同步:
,函数1,…functionN)function1
通过functionN
。如果只有少数外部调用使用或修改全局数据,则通过将全局同步模式设置为,在所有外部函数调用之前和之后关闭同步在mex -函数进入和退出
。使用的同步:
选项,仅对修改全局数据的外部调用启用同步。
看到为全局数据生成代码(MATLAB编码器)。
coder.extrinsic (
在调用外部函数之前和之后,禁用MATLAB执行和生成代码执行之间的全局数据同步“同步:掉”
,函数1,…functionN)function1
通过functionN
。如果大多数外部调用使用或修改全局数据,但少数不使用全局数据,则使用“同步:掉”
选项,用于关闭不修改全局数据的外部调用的同步。
看到为全局数据生成代码(MATLAB编码器)。
例子
输入参数
限制
外部函数调用有一些开销,可能会影响性能。在外部函数调用中传递的输入数据必须提供给MATLAB,这需要对数据进行复制。如果函数有任何输出数据,则必须将该数据传输回MEX函数环境,这也需要一个副本。
的代码生成器不支持使用万博1manbetx
coder.extrinsic
调用位于私有文件夹中的函数。的代码生成器不支持使用万博1manbetx
coder.extrinsic
调用局部函数。