文档

coder.extrinsic

声明外部函数

描述

例子

coder.extrinsic (函数声明函数作为一个外在函数。代码生成器并不为外部函数体生成代码,而是使用MATLAB®引擎执行调用。此功能仅当MATLAB引擎在MEX函数、Simulink中可用时才可用金宝app®模拟,或在编译时调用期间。

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

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

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

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

编码器(的同步:, function1,…functionN)允许在调用外部函数之前和之后在MATLAB和MEX函数之间同步全局数据function1通过functionN.如果只有少数外部调用使用或修改全局数据,则通过将全局同步模式设置为,在所有外部函数调用之前和之后关闭同步在mex函数的入口和出口.使用的同步:选项仅为修改全局数据的外部调用启用同步。

对于恒定的全局数据,允许在调用外部函数后验证MATLAB和MEX函数之间的一致性。

看到为全局数据生成代码

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

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

看到为全局数据生成代码

例子

全部折叠

MATLAB函数补丁不支持代码生成金宝app。的功能补丁在生成的MEX函数中声明补丁作为你的MATLAB函数的外部函数。

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

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

函数毕达哥拉斯(a, b, c =颜色)% # codegen计算一个直角三角形的斜边。%,并将三角形显示为一个补丁对象。C =√(a^2 + b^2);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将直角三角形的图形显示为红色补丁对象。

输入参数

全部折叠

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

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

数据类型:字符

限制

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

  • 的代码生成器不支持使用金宝appcoder.extrinsic调用位于私有文件夹中的函数。

  • 的代码生成器不支持使用金宝appcoder.extrinsic调用局部函数。

提示

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

  • 使用coder.screener函数来检测哪些函数必须声明为外部函数。该函数运行代码生成准备工具(Code Generation Readiness Tool),该工具将筛选MATLAB代码中不支持代码生成的特性和函数。金宝app

介绍了R2011a