调用外部C / C ++函数gydF4y2Ba
coder.ceval (gydF4y2Ba
执行指定的外部C/ c++函数gydF4y2Bacfun_namegydF4y2Ba
)gydF4y2Bacfun_namegydF4y2Ba
。确定gydF4y2Bacfun_namegydF4y2Ba
在外部的C / C ++源文件或库。提供外部电源,库和到代码发生器的头文件。gydF4y2Ba
coder.ceval (gydF4y2Ba
执行gydF4y2Bacfun_namegydF4y2Ba
,gydF4y2Bacfun_argumentsgydF4y2Ba
)gydF4y2Bacfun_namegydF4y2Ba
使用参数gydF4y2Bacfun_argumentsgydF4y2Ba
。gydF4y2Bacfun_argumentsgydF4y2Ba
以逗号分隔的输入参数列表的顺序是gydF4y2Bacfun_namegydF4y2Ba
需要。gydF4y2Ba
默认,gydF4y2Bacoder.cevalgydF4y2Ba
当C/ c++支持按值传递参数时,按值传递参数给C/ c++函数。万博1manbetx为了使gydF4y2Bacoder.cevalgydF4y2Ba
通过引用传递参数,使用该构建体gydF4y2Bacoder.refgydF4y2Ba
,gydF4y2Bacoder.rrefgydF4y2Ba
和gydF4y2Bacoder.wrefgydF4y2Ba
。如果C/ c++不支持按值传递参数,万博1manbetx例如,如果参数是数组,gydF4y2Bacoder.cevalgydF4y2Ba
按引用传递参数。如果你不使用gydF4y2Bacoder.refgydF4y2Ba
,gydF4y2Bacoder.rrefgydF4y2Ba
要么gydF4y2Bacoder.wrefgydF4y2Ba
时,参数的副本可以出现在所生成的代码来执行MATLABgydF4y2Ba®gydF4y2Ba语义阵列。gydF4y2Ba
coder.ceval (gydF4y2Ba
执行gydF4y2Ba“全球”gydF4y2Ba
,gydF4y2Bacfun_namegydF4y2Ba
)gydF4y2Bacfun_namegydF4y2Ba
并指出gydF4y2Bacfun_namegydF4y2Ba
使用一个或多个MATLAB全局变量。然后,代码生成器可以生成与此全局变量使用一致的代码。gydF4y2Ba
coder.ceval (gydF4y2Ba
执行gydF4y2Ba“全球”gydF4y2Ba
,gydF4y2Bacfun_namegydF4y2Ba
,gydF4y2Bacfun_argumentsgydF4y2Ba
)gydF4y2Bacfun_namegydF4y2Ba
使用参数gydF4y2Bacfun_argumentsgydF4y2Ba
并指出gydF4y2Bacfun_namegydF4y2Ba
使用一个或多个MATLAB全局变量。gydF4y2Ba
coder.ceval (gydF4y2Ba
允许你打电话给CUDAgydF4y2Ba®gydF4y2BaGPUgydF4y2Ba'-gpudevicefcn'gydF4y2Ba
,devicefun_name,devicefun_arguments)gydF4y2Ba__设备__gydF4y2Ba
来自内核的函数。gydF4y2Ba'-gpudevicefcn'gydF4y2Ba
指示gydF4y2Bacoder.cevalgydF4y2Ba
该目标函数是GPU的设备上。gydF4y2Badevicefun_namegydF4y2Ba
是的名称gydF4y2Ba__设备__gydF4y2Ba
功能gydF4y2Badevicefun_argumentsgydF4y2Ba
以逗号分隔的输入参数列表的顺序是gydF4y2Badevicefun_namegydF4y2Ba
需要。这个选项需要GPU编码器™产品。gydF4y2Ba
coder.ceval (gydF4y2Ba
执行gydF4y2Ba'-layout:rowMajor'gydF4y2Ba
,gydF4y2Bacfun_namegydF4y2Ba
,gydF4y2Bacfun_argumentsgydF4y2Ba
)gydF4y2Bacfun_namegydF4y2Ba
使用参数gydF4y2Bacfun_argumentsgydF4y2Ba
并通过存储在行主要布局数据。从使用列优先布局的函数调用,代码生成器转换输入行主布局和转换输出返回到列优先布局。对于更短的语法,使用gydF4y2Bacoder.ceval(‘行’,…)gydF4y2Ba
。gydF4y2Ba
coder.ceval (gydF4y2Ba
执行gydF4y2Ba'-layout:columnMajor'gydF4y2Ba
,gydF4y2Bacfun_namegydF4y2Ba
,gydF4y2Bacfun_argumentsgydF4y2Ba
)gydF4y2Bacfun_namegydF4y2Ba
使用参数gydF4y2Bacfun_argumentsgydF4y2Ba
并将存储在列主布局数据。当从一个使用行主布局,代码生成器转换输入列优先布局和输出转换回行主布局的函数调用。对于更短的语法,使用gydF4y2Bacoder.ceval( ' - 山坳',...)gydF4y2Ba
。gydF4y2Ba
coder.ceval (gydF4y2Ba
执行gydF4y2Ba'-layout:任何'gydF4y2Ba
,gydF4y2Bacfun_namegydF4y2Ba
,gydF4y2Bacfun_argumentsgydF4y2Ba
)gydF4y2Bacfun_namegydF4y2Ba
使用参数gydF4y2Bacfun_argumentsgydF4y2Ba
并用其当前的阵列布局通过数据,即使当阵列布局不匹配。代码生成器不转换输入或输出数据的阵列布局。gydF4y2Ba
cfun_return = coder.ceval(gydF4y2Ba___gydF4y2Ba)gydF4y2Ba
执行gydF4y2Bacfun_namegydF4y2Ba
并返回单个标量值,gydF4y2Bacfun_returngydF4y2Ba
中,对应于值的C / C ++中的函数返回gydF4y2Ba返回gydF4y2Ba
声明。要一致与C / C ++,gydF4y2Bacoder.cevalgydF4y2Ba
只能返回标量值。它不能返回数组。对前面语法中的任何输入参数组合使用此选项。gydF4y2Ba
您不能使用gydF4y2Bacoder.cevalgydF4y2Ba
在外部声明的函数上gydF4y2Bacoder.extrinsicgydF4y2Ba
。gydF4y2Ba
当LCC编译器创建库时,它会在库函数名中添加前导下划线。如果库的编译器是LCC,而您的代码生成编译器不是LCC,则必须在函数名前加下划线,例如,gydF4y2Bacoder.ceval( '_ mylibfun')gydF4y2Ba
。如果编译器库不LCC,您不能使用LCC从MATLAB代码生成的代码从库调用函数。这些库函数的名称没有前导下划线的LCC编译器要求。gydF4y2Ba
如果属性具有get方法、set方法或验证器,或者是具有某些属性的System object™属性,那么您不能通过引用将该属性传递给外部函数。看到gydF4y2Ba某些属性不支持引用传递万博1manbetxgydF4y2Ba。gydF4y2Ba
对于代码生成,之前调用gydF4y2Bacoder.cevalgydF4y2Ba
,你必须指定类型,大小和复杂数据返回值和输出参数的类型。gydF4y2Ba
应用gydF4y2Bacoder.cevalgydF4y2Ba
给接受或返回变量中不MATLAB代码存在,如指针的函数,gydF4y2Ba文件gydF4y2Ba
类型的文件I / O,和C / C ++宏,使用gydF4y2Bacoder.opaquegydF4y2Ba
函数。gydF4y2Ba
用gydF4y2Bacoder.cevalgydF4y2Ba
只有在MATLAB代码生成。gydF4y2Bacoder.cevalgydF4y2Ba
在未编译的MATLAB代码中生成错误。要确定一个MATLAB函数是否在MATLAB中执行,请使用gydF4y2Bacoder.targetgydF4y2Ba
。如果函数在MATLAB中执行,则调用C/ c++函数的MATLAB版本。gydF4y2Ba
coder.ExternalDependencygydF4y2Ba
|gydF4y2Bacoder.extrinsicgydF4y2Ba
|gydF4y2Bacoder.opaquegydF4y2Ba
|gydF4y2Bacoder.refgydF4y2Ba
|gydF4y2Bacoder.rrefgydF4y2Ba
|gydF4y2Bacoder.targetgydF4y2Ba
|gydF4y2Bacoder.updateBuildInfogydF4y2Ba
|gydF4y2Bacoder.wrefgydF4y2Ba