主要内容

编码器.Target.

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

描述

TF.= coder.target(目标如果代码生成目标是返回true(1)目标。否则,它返回false(0)。

如果您为MATLAB生成代码®类,MATLAB在代码生成之前计算类加载时间的类初始值。如果你使用编码器.Target.在Matlab类属性初始化中,Coder.target('matlab')返回true。

例子

全部收缩

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

写一个matlab函数myabsval.

功能y = myabsval(u)%#codegen.y = abs(u);

生成C静态库myabsval., 使用- args.选项指定输入参数的大小,类型和复杂性。

Codegen.-config:libmyabsval.-  args.{0.0}
Codegen.函数创建库文件myabsval.lib.和标题文件myabsval.h.在文件夹中\ codegen \ lib \ myabsval。(库文件扩展名可以根据您的平台更改。)它生成函数myabsval_initialize.myabsval_terminate.在同一文件夹中。

编写MATLAB函数以调用生成的C库功能编码器.CEVAL.

功能Y = CALLMYABSVAL(Y)%#codegen.%检查目标。如果Callmyabsval是的,请不要使用编码器.CEVAL%在matlab中执行如果Coder.target('matlab'%在matlab中执行,调用函数myabsvaly = myabsval(y);其他%添加所需的包含语句到生成的功能代码Coder.updateBuildInfo('addincludepaths''$(start_dir)\ codegen \ lib \ myabsval');编码器.Cinclude('myabsval_initialize.h');编码器.Cinclude('myabsval.h');编码器.Cinclude('myabsval_terminate.h');%在生成的代码中执行。在调用之前调用初始化函数%c第一次函数Coder.CEVAL('myabsval_initialize');%调用生成的C库函数myabsvaly = coder.ceval('myabsval',y);%呼叫终止功能%在最后一次调用C函数Coder.CEVAL('myabsval_terminate');结束

生成MEX功能callmyabsval_mex.。在命令行提供生成的库文件。

Codegen.-config:mex.Callmyabsval.Codegen \ lib \ myabsval \ myabsval.lib-  args.{-2.75}

你可以使用而不是在命令行提供库Coder.updateBuildInfo.指定函数中的库。使用此选项来预先配置构建。将此行添加到其他块:

Coder.updateBuildInfo('addlinkObjects''myabsval.lib''$(start_dir)\ codegen \ lib \ myabsval',100,真实,真实);

运行mex函数callmyabsval_mex.调用库函数myabsval.

callmyabsval_mex(-2.75)
ANS = 2.7500.

调用matlab函数Callmyabsval.

Callmyabsval(-2.75)
ANS = 2.7500.
Callmyabsval.功能展示了在MATLAB和代码生成中执行所需的行为。

输入参数

全部收缩

代码生成目标,指定为字符向量或字符串标量。指定其中一个目标。

'matlab' 在matlab中运行(不是生成代码)
'mex' 生成MEX功能
'sfun' 模拟模拟万博1manbetx®模型。还用于在加速器模式下运行。
'RTW' 生成lib,dll或exe目标。也用于运行万博1manbetxSimulink Coder™快速加速器模式。
'hdl' 生成HDL目标
'习俗' 生成自定义目标

例:tf = coder.target('matlab')

例:tf = coder.target(“matlab”)

在R2011A介绍