coder.extrinsic
包:编码器
声明外部函数或函数
语法
coder.extrinsic ('function_name”);
coder.extrinsic ('function_name_1”,……”,function_name_n”);
coder.extrinsic ('同步:”、“function_name”);
coder.extrinsic ('同步:”、“function_name_1”,……”,function_name_n”);
coder.extrinsic ('同步:了”、“function_name”);
coder.extrinsic ('同步:了”、“function_name_1”,……”,function_name_n”);
参数
-
function_name
function_name_1,……,function_name_n -
声明
function_name
或function_name_1
通过function_name_n
作为外部函数。 -
同步:
-
function_name
或function_name_1
通过function_name_n
.允许MATLAB之间的全局数据同步®和MEX函数调用外部函数之前和之后,
function_name
或function_name_1
通过function_name_n
.如果只有少数外部调用修改全局数据,则通过将全局同步模式设置为,在所有外部函数调用之前和之后关闭同步在mex -函数进入和退出
.使用同步:选项,仅为外部调用打开同步做修改全局数据。 -
同步:了
-
在调用外部函数之前和之后,禁用MATLAB和MEX函数之间的全局数据同步
function_name
或function_name_1
通过function_name_n
.如果大多数外部调用修改全局数据,但少数不修改全局数据,则可以使用同步:了选项,以关闭外部调用的同步不修改全局数据。
描述
coder.extrinsic
声明外部函数。在模拟过程中,代码生成器为外部函数的调用生成代码,但不生成函数的内部代码。因此,仿真只能在安装MATLAB软件的平台上运行。在独立代码生成过程中,MATLAB试图确定外部函数是否影响调用它的函数的输出——例如返回mxArrays
到输出变量。假设输出没有变化,MATLAB继续进行代码生成,但从生成的代码中排除外部函数。否则,就会发生编译错误。
你不能使用coder.ceval
在外部声明的函数上使用coder.extrinsic
.
coder.extrinsic
在代码生成之外被忽略。
限制
外部函数调用有一些开销,可能会影响性能。在外部函数调用中传递的输入数据必须提供给MATLAB,这需要对数据进行复制。如果函数有任何输出数据,则必须将该数据传输回MEX函数环境,这也需要一个副本。
提示
例子
下面的代码声明MATLAB函数补丁
在MATLAB局部函数中作为外部的create_plot
.
function c = pythagoras(a,b,color) %#codegen %计算直角三角形的斜边%,并将该三角形显示为补丁对象。C =√(a^2 + b^2);Create_plot (a, b, color);function create_plot(a, b, color) %X = [0;a;a];Y = [0;0;b];Patch (x, y, color);轴(“平等”);
通过声明补丁
作为外部因素,您指示代码生成器不要编译或生成用于的代码补丁
.相反,代码生成器进行分派补丁
到MATLAB中执行。