主要内容

buildInstrumentedMex

生成编译C代码功能包括日志记录仪器

描述

例子

buildInstrumentedMexfcn- gydF4y2Ba选项将MATLAB®文件fcn。m墨西哥人函数,使仪器日志最大和最小值的命名和中间变量。可选地,您可以启用仪表log2直方图的名字,中间和表达式的值。一般的语法和选项buildInstrumentedMexfiaccel都是一样的,除了吗buildIntstrumentedMex没有fi对象的限制和支持金宝app“编码器”选择。

请注意

就像fiaccel函数,buildInstrumentedMex函数生成一个墨西哥人的功能。生成C代码,使用codegen(MATLAB编码器)函数。

例子

buildInstrumentedMexfcn_1……fcn_n”- - - - - -选项编码器将MATLAB函数fcn_1通过fcn_n墨西哥人函数,使仪器日志最大和最小值的命名和中间变量。生成一个墨西哥人需要为多个入口点函数功能“编码器”选择。

请注意

生成一个墨西哥人函数多个入口点函数使用buildInstrumentedMex函数需要一个MATLAB编码器™许可证。

例子

全部折叠

这个例子展示了如何创建一个仪器的墨西哥人功能,运行测试台上,然后查看记录结果。

定义模型输入参数。

n = 128;x =复杂(0 (n, 1));w = fi_radix2twiddles (n);

生成一个仪器的墨西哥人的功能。使用- o选项指定墨西哥人函数名。使用柱状图选择计算直方图。

如果你有一个MATLAB®编码器™许可证,您还可以添加编码器选择。在这种情况下,

buildInstrumentedMextestfft- otestfft_instrumentedarg游戏{x, coder.Constant (w)}柱状图

如果你有一个MATLAB®编码器™许可证,您还可以添加编码器选择。例如,

buildInstrumentedMextestfft编码器- otestfft_instrumentedarg游戏{x, w}

就像fiaccel函数,buildInstrumentedMex函数生成一个墨西哥人的功能。生成C代码,使用MATLAB®编码器™codegen函数。

运行一个测试文件记录仪器的结果。使用showInstrumentedMex函数打开报告。查看模拟最小和最大值和整数状态,暂停在报告中一个变量。您还可以看到表中提出了双精度数字数据类型。

我= 1:20 y = testfft_instrumented (randn(大小(x)), w);结束showInstrumentationResultstestfft_instrumented

instrumentation-report-tb1.png

直方图显示,然后使用clearInstrumentationResults函数结果日志。

clearInstrumentationResultstestfft_instrumented

运行不同的测试台上,然后查看新仪器的结果。

我= 1:20 y = testfft_instrumented (cast(兰德(大小(x)) -0.5,“喜欢”,x), w);结束showInstrumentationResultstestfft_instrumented

instrumentation-report-tb2.png

把一个变量的直方图,单击直方图图标变量选项卡。

numeric-type-scope-x-tb2.png

直方图显示,然后使用clearInstrumentationResults函数结果日志。

clearInstrumentationResultstestfft_instrumented

清晰的墨西哥人的功能。

清晰的testfft_instrumented

这个例子展示了如何创建一个仪器的墨西哥人函数多个入口点函数。生成一个墨西哥人函数多个入口点函数使用buildInstrumentedMex函数需要使用“编码器”选择和MATLAB®编码器™许可证。

第一节标题

下面的例子使用了两个入口点函数,ep1ep2

函数日元= ep1 (u)% # codegen日元= u;结束
函数y2 = ep2 (u, v)% # codegeny2 = u + v;结束

生成一个仪器的墨西哥人两个入口点函数的函数。使用- o选项指定名称的墨西哥人的功能。使用柱状图选择计算直方图。使用编码器选项来启用生成多个入口点buildInstrumentedMex函数。

u = 1:10 0;v = 5:104;buildInstrumentedMex- osharedmexep1arg游戏{你}%入口点1ep2arg游戏{u, v}%入口点2柱状图编码器
代码生成成功。

使用生成的墨西哥人函数调用第一个入口点函数。

日元= sharedmex (“ep1”u);

使用生成的墨西哥人函数调用第二个入口点函数。

y2 = sharedmex (“ep2”,u, v);

显示测量结果。

showInstrumentationResultssharedmex

report-multiple-entry-point-functions.png

输入参数

全部折叠

MATLAB的入口点函数来进行检测,指定为当前工作中存在的一个函数文件夹或路径。入口点函数必须适合代码生成。有关更多信息,请参见使MATLAB代码适合代码生成(MATLAB编码器)

编译器选项的选择。buildInstrumentedMex优先权,单个命令行选项选项指定使用一个配置对象。如果命令行选项冲突,最右边的选项。

arg游戏example_inputs

定义大小、类和所有MATLAB函数输入的复杂性。使用的值example_inputs定义这些属性。example_inputs必须是一个单元阵列,将相同数量和顺序的输入指定为MATLAB函数。

编码器

使用MATLAB编码器软件编译墨西哥人文件,而不是默认的定点设计师™fiaccel函数。这个选项删除fiaccel限制和完全可用于生成代码的支持。金宝app你必须有一个MATLAB编码器许可使用该选项。

配置config_object

墨西哥人代指定参数,基于config_object,定义为一个MATLAB变量使用coder.mexconfig。例如:

cfg = coder.mexconfig;

- dout_folder

将生成的文件存储在指定的绝对或相对路径out_folder。如果指定的文件夹out_folder不存在,buildInstrumentedMex为您创建。

如果你不指定文件夹的位置,buildInstrumentedMex默认文件夹中生成文件:

fiaccel/墨西哥人/fcn

fcn的名字是在命令行中指定的MATLAB函数。

功能不支持以下文件夹中的人物名称:星号(金宝app*)、问号(吗?),美元(美元)和英镑(#)。

- g

在调试模式下编译的墨西哥人功能,优化关闭。如果没有指定,buildinstrumentedMex生成的墨西哥人函数优化模式。

全球global_values

为全局变量在MATLAB文件指定初始值。在单元阵列中使用的值global_values初始化全局变量在函数编译。单元阵列应该提供的名称和每个全局变量的初始值。你必须在编译之前初始化全局变量buildInstrumentedMex。如果你不提供全局变量使用的初始值全球选项,buildInstrumentedMex检查MATLAB中的变量全局工作空间。如果你不提供一个初始值,buildInstrumentedMex生成一个错误。

生成的代码和MATLAB墨西哥人每个人都有自己的全球数据的副本。要确保一致性,必须同步全球数据只要两个交互。如果你不同步的数据,他们的全局变量可能是不同的。

柱状图 计算所有命名的log2直方图,中间和表达式的值。一个直方图表列出现在代码生成报告。
-我包含路径

添加包含路径代码生成路径的开始。

buildInstrumentedMex搜索代码生成路径第一个当将MATLAB代码转换为墨西哥人代码。

-launchreport

生成并打开一个代码生成报告。如果不指定这个选项,buildInstrumentedMex生成一个报告只有在发生或者你指定错误或警告消息报告选择。

- ooutput_file_name

生成基本名称的墨西哥人的功能output_file_name加上一个特定于平台的扩展。

output_file_name可以是一个文件名或包括现有的路径。

如果你不指定输出文件名,基本名称fcn_mex,它允许您运行最初的MATLAB函数和墨西哥人函数和比较结果。

- ooptimization_option

优化代码生成的墨西哥人,基于价值的optimization_option:

  • 启用:内联——允许内联函数

  • 禁用:内联——禁用内联函数

如果不指定,buildInstrumentedMex使用内联优化。

报告

生成一个代码生成报告。如果不指定这个选项,buildInstrumentedMex生成一个报告只有在发生或者你指定错误或警告消息-launchreport选择。

提示

  • 你不能工具MATLAB软件提供的功能。如果你的顶级函数是这样一个MATLAB函数,没有记录。你也不能乐器脚本。

  • 仪器结果每次都积累的墨西哥人函数被调用。使用clearInstrumentationResults清除之前的日志。

  • 一些编码模式通过大量的数据,但只使用了一小部分数据。在这种情况下,您可能会看到退化性能时使用buildInstrumentedMex。在接下来的模式,subfun只使用一个元素的输入数组,一个。正常执行,执行的时间subfun一旦不顾的大小保持不变一个。这个函数调用subfunN倍,因此执行总时间成正比N。然而,当检测时间执行subfun一旦成为成正比N^ 2。这种变化是因为最小和最大数据计算整个数组。当一个大,计算会导致严重的性能下降。因此,只要有可能,你应该只通过函数实际上需要的数据。

    函数=汀(一)N =元素个数(一个);i = 1: N (i) = subfun(我);结束结束函数b = subfun(我)b = 0.5 * (i);结束函数=汀(一)N =元素个数(一个);i = 1: N (i) = subfun ((i));结束结束函数b = subfun b (a) = 0.5 *;结束

版本历史

介绍了R2011b

全部展开