主要内容

coder.target

确定代码生成目标是否是指定的目标

描述

例子

特遣部队= coder.target (目标如果代码生成目标为,则返回true (1)目标.否则,返回false(0)。

如果你用MATLAB生成代码®类,MATLAB在代码生成之前在类加载时计算类的初始值。如果你使用coder.target在MATLAB类属性初始化中,coder.target (MATLAB)返回true。

例子

全部折叠

参数化MATLAB函数,使其在MATLAB或生成的代码中工作。当函数在MATLAB中运行时,它会调用MATLAB函数myabsval.然而,生成的代码调用一个C库函数myabsval

编写MATLAB函数myabsval

函数Y = myabsval(u)% # codegenY = abs(u);

生成一个C静态库myabsval,使用arg游戏选项指定输入参数的大小、类型和复杂性。

codegen配置:自由myabsvalarg游戏{0.0}
codegen函数创建库文件myabsval.lib头文件myabsval.h在文件夹里\ codegen \ lib \ myabsval.(库文件扩展名可以根据平台的不同而改变。)它生成函数myabsval_initialize而且myabsval_terminate在同一个文件夹里。

编写MATLAB函数调用生成的C库函数使用coder.ceval

函数Y = callmyabsval(Y)% # codegen%检查目标。不要使用编码器。Ceval如果callmyabsval为%在MATLAB中执行如果coder.target (MATLAB的在MATLAB中执行,调用函数myabsvalY = myabsval(Y);其他的将所需的include语句添加到生成的函数代码中coder.updateBuildInfo (“addIncludePaths”“美元(START_DIR) \ codegen \ lib \ myabsval ');coder.cinclude (“myabsval_initialize.h”);coder.cinclude (“myabsval.h”);coder.cinclude (“myabsval_terminate.h”);%在生成的代码中执行。调用初始化函数之前调用% C函数的第一次coder.ceval (“myabsval_initialize”);调用生成的C库函数myabsvalY = code .ceval(“myabsval”, y);之后调用terminate函数%最后一次调用C函数coder.ceval (“myabsval_terminate”);结束

生成MEX函数callmyabsval_mex.在命令行中提供生成的库文件。

codegen配置:墨西哥人callmyabsvalcodegen \ lib \ myabsval \ myabsval.libarg游戏{-2.75}

而不是在命令行提供库,您可以使用coder.updateBuildInfo在函数中指定库。使用此选项可预配置生成。将这一行添加到其他的布洛克:

coder.updateBuildInfo (“addLinkObjects”“myabsval.lib”“美元(START_DIR) \ codegen \ lib \ myabsval ', 100年,真的,真的);

请注意

START_DIR宏仅支持用于生成代码金宝appMATLAB编码器™

运行MEX函数callmyabsval_mex哪个调用库函数myabsval

callmyabsval_mex (-2.75)
Ans = 2.7500

调用MATLAB函数callmyabsval

callmyabsval (-2.75)
Ans = 2.7500
callmyabsval函数展示了在MATLAB和代码生成中执行所需的行为。

输入参数

全部折叠

代码生成目标,指定为字符向量或字符串标量。指定这些目标之一。

MATLAB的 在MATLAB中运行(不生成代码)

“C”“c++”CUDA的OpenCL的“SystemC”“SystemVerilog”“Verilog”硬件描述语言(VHDL)的

金宝app支持用于代码生成的目标语言

墨西哥人的 生成MEX函数
“Sfun” 模拟Simulink金宝app®模型。也用于在加速模式下运行。
“环球套票” 生成LIB、DLL或EXE目标。也用于磨合金宝app仿真软件编码器和快速加速器模式。
“高密度” 生成HDL目标
“自定义” 生成自定义目标

例子:tf = code .target('MATLAB')

例子:tf = code .target("MATLAB")

请注意

如果CUDASystemC代码生成,coder.target(“c++”)总是真正的

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

版本历史

在R2011a中引入