主要内容

在命令行中生成单精度C代码

此示例显示了如何从双精度MATLAB生成单精度C代码®命令行的代码。

先决条件

要完成此示例,请安装以下产品:下载188bet金宝搏

创建一个文件夹并复制相关文件

  1. 创建一个本地工作文件夹,例如C:\ ex_2ndorder_filter

  2. 更改为DocRoot \ Toolbox \ fixpoint \示例文件夹。在MATLAB命令行,输入:

    CD(FullFile(DocRoot,“工具箱”,“ FixPoint”,“示例”))

  3. 复制EX_2NDORDER_FILTER.MEX_2NDORDER_FILTER_TEST.M文件到您本地的工作文件夹。

    类型 姓名 描述
    功能代码 EX_2NDORDER_FILTER.M 入口点MATLAB功能
    测试文件 EX_2NDORDER_FILTER_TEST.M

    测试MATLAB脚本EX_2NDORDER_FILTER.M

    EX_2NDORDER_FILTER函数

    EX_2NDORDER_FILTER_TEST脚本

确定输入参数的类型

确定输入参数的类型X, 利用编码器。getArgTypes运行测试文件EX_2NDORDER_FILTER_TEST.M

types = coder.getArgtypes('ex_2ndorder_filter_test',,,,'ex_2ndorder_filter');

测试文件运行并显示每个输入信号的过滤器的输出。编码器。getArgTypes确定输入类型的X是1x256双。

生成并运行单精制MEX以验证数值行为

  1. 在生成单精度C代码之前,请生成单精度MEX函数,您可以用来验证生成的单精制代码的行为。要指示您想要单精制MEX代码,请使用-singlec选项。

    代码根-singlecEX_2NDORDER_FILTER-args类型-报告

    在MEX生成期间,代码生成器检测单位转换问题。在生成C/C ++代码之前,请解决这些问题。此示例没有单一精确的转换问题。

    生成的MEX接受单精度和双精度输入。您可以使用相同的测试文件运行双精度MATLAB功能和单精度MEX功能。您无需修改​​测试文件即可调用单精度MEX函数。

  2. 运行测试文件EX_2NDORDER_FILTER_TEST.M。该文件调用Double Eccision Matlab函数EX_2NDORDER_FILTER.M

    EX_2NDORDER_FILTER_TEST

  3. 测试文件运行并显示每个输入信号的过滤器的输出。

  4. 运行测试文件EX_2NDORDER_FILTER_TEST,更换双重精液的电话EX_2NDORDER_FILTER呼叫单精制的函数EX_2NDORDER_FILTER_MEX功能。

    coder.runtest('ex_2ndorder_filter_test',,,,'ex_2ndorder_filter'
  5. 测试文件运行并显示每个输入信号的过滤器的输出。单精度MEX函数产生与双精度MATLAB函数相同的结果。

生成单精确的C代码

  1. 创建一个代码配置对象,以生成C静态库,动态库或可执行文件。

    cfg = coder.config('lib');

  2. 要生成单精度C代码,请致电代码根-singlec选项。启用代码生成报告的生成。

    代码根-configCFG-singlecEX_2NDORDER_FILTER-args{类型{1}}-报告

查看生成的单精度C代码

要查看C代码生成的代码生成报告,请单击查看报告关联。

在里面生成的代码窗格,单击EX_2NDORDER_FILTER.C

  • 双精度变量具有类型漂浮在C代码中。

  • 索引一世是一个整数。

查看潜在的数据类型问题

当您生成单精制代码时,代码根在代码生成报告中突出显示潜在数据类型问题。如果代码根该报告无法删除双重精确操作,突出显示了导致操作的MATLAB表达式。

点击代码见解标签。扩张潜在数据类型问题。缺乏双重精确操作表明不保留双重精确操作。

也可以看看

|||

相关示例

更多关于