coder.extrinsic

声明外部函数

描述

例子

coder.extrinsic (函数)声明函数作为一个外在函数。代码生成器不为外部函数的主体生成代码,而是使用MATLAB®引擎来执行调用。此功能仅在MATLAB引擎在执行期间可用时可用。MATLAB引擎可用的情况示例包括执行MEX函数和Simulink万博1manbetx®模拟,或代码生成时的函数调用(也称为编译时)。

在独立代码生成期间,代码生成器尝试确定外部函数是否会影响调用它的函数的输出—例如通过返回mxArrays到一个输出变量。如果输出没有变化,代码生成器将继续进行代码生成,但会从生成的代码中排除外部函数。否则,代码生成器将产生编译错误。

你不能使用coder.ceval调用声明为外部的函数coder.extrinsic

coder.extrinsic在代码生成之外被忽略。

coder.extrinsic (function1,。。。functionN)声明function1通过functionN非本征函数。

coder.extrinsic (的同步:, function1,…functionN)在调用外部函数之前和之后,实现MATLAB和MEX函数之间的全局数据同步function1通过functionN。如果只有少数外部调用使用或修改全局数据,通过将全局同步模式设置为,在所有外部函数调用之前和之后关闭同步在mex -功能进入和退出。使用的同步:选项仅为确实修改全局数据的外部调用打开同步。

对于常量全局数据,可在调用外部函数后验证MATLAB和MEX函数之间的一致性。

看到为全局数据生成代码

coder.extrinsic (“同步:掉”, function1,…functionN)在调用外部函数之前和之后,禁用MATLAB和MEX函数之间的全局数据同步function1通过functionN。如果大多数外部调用使用或修改全局数据,但少数不使用,则使用“同步:掉”选项关闭不修改全局数据的外部调用的同步。

对于常量全局数据,在调用外部函数后,禁止验证MATLAB和MEX函数之间的一致性。

看到为全局数据生成代码

例子

全部折叠

MATLAB函数补丁不支持代码生成万博1manbetx。的功能仍然可以使用补丁在生成的MEX函数中声明补丁作为MATLAB函数的外在形式。

这个MATLAB代码声明补丁作为局部函数的外在create_plot。通过声明补丁作为外在的,您指示代码生成器不要为补丁。相反,代码生成器进行分派补丁到MATLAB进行执行。

代码生成器自动处理许多常见的MATLAB可视化函数,如函数外在。

函数毕达哥拉斯(a, b, c =颜色)% # codegen%计算直角三角形的斜边%并将三角形显示为patch对象。c =√(a²+ b²)create_plot (a, b,颜色);结束函数create_plot (a, b,颜色)宣布补丁为外在的coder.extrinsic (“补丁”);x = [0;;];y = (0, 0; b);补丁(x, y,颜色);轴(“平等”);结束

生成一个MEX函数毕达哥拉斯。另外,生成代码生成报告。

codegen报告毕达哥拉斯arg游戏{1 1(。3。3。3)}

在报告中,查看MATLAB代码create_plot

该报告强调了补丁函数来表示它们被视为外在函数。

运行MEX函数。

pythagoras_mex(3,4, [1.0 0.0 0.0]);

MATLAB将直角三角形的图形显示为一个红色的patch对象。

输入参数

全部折叠

声明为外在的MATLAB函数的名称。

例子:coder.extrinsic(“补丁”)

数据类型:字符

限制

  • 外部函数调用有一些会影响性能的开销。在外部函数调用中传递的输入数据必须提供给MATLAB,这需要对数据进行复制。如果函数有任何输出数据,则必须将这些数据传输回MEX函数环境,这也需要一个副本。

  • 代码生成器不支持使用万博1manbetxcoder.extrinsic调用位于专用文件夹中的函数。

  • 代码生成器不支持使用万博1manbetxcoder.extrinsic调用本地函数。

提示

  • 代码生成器自动处理许多常见的MATLAB可视化函数,例如情节,disp,数字外在。您不必通过使用来显式地将它们声明为外部函数coder.extrinsic

  • 使用coder.screener函数来检测哪些函数必须声明为外部函数。此函数运行代码生成准备工具,该工具在MATLAB代码中筛选代码生成不支持的特性和函数。万博1manbetx

介绍了R2011a