行-主阵列布局插值算法
这个例子演示了二维和三维查找表中的插值算法,该算法针对行-主数组布局进行了优化。给出了针对列-主阵列布局优化的插值算法,以供参考。使用行主插值算法生成的代码在处理行主数组布局的表数据时具有最佳的速度和内存利用率。采用列-主插值算法生成的代码在列-主阵列布局中性能最好。
在这个例子中,你:
用列-主要和行-主要算法在二维查找表上进行插值。
使用行主算法和数组布局生成代码。
识别阵列布局,选择优化算法。
用列主算法和行主算法在三维查找表上插值。
用二维Row-Major算法进行模拟
1.打开示例模型rtwdemo_row_lut2d
.
模型=“rtwdemo_row_lut2d”;open_system(模型);
2.在默认情况下,Simul金宝appink配置一个具有列-主算法和列-主数组布局的模型。该模型rtwdemo_row_lut2d
配置为使用列主算法。模拟模型。中打开数据检查器以观察输出模拟选项卡。输出值为4。
3.要启用行主算法,请打开“配置参数”对话框。在数学和数据类型窗格中,启用配置参数使用针对行-主数组布局优化的算法.或者,在MATLAB命令窗口中输入:
set_param(模型,“UseRowMajorAlgorithm”,“上”);
4.模拟模型并在数据检查器中观察这些结果。输出值为4。
列主算法和行主算法的区别只是插补顺序不同。在某些情况下,由于对同一数据集的操作顺序不同,列主算法和行主算法的输出可能会有微小的数值差异。对于示例模型中使用的二维查找表,这里说明插值算法。
利用行-主算法和数组布局生成代码
模型中使用的二维表数据rtwdemo_row_lut2d
是:
Table_3by2。价值
Ans = 1 4 2 5 3 6
1.打开“配置参数”对话框。除了启用使用针对行-主数组布局优化的算法配置参数,对代码生成>接口窗格中,设置配置参数阵列布局来行
选择。此配置参数支持生成行主要代码的模型。或者,在MATLAB命令窗口中输入:
set_param(模型,“ArrayLayout”,“行”);
2.将MATLAB®中的当前文件夹更改为可写文件夹。在C代码选项卡上,单击构建生成C代码。
3.在生成的代码中,观察具有行-主数组布局的表数据。为了进行比较,下面是生成的列主数组布局代码中的表数据。
在生成的代码中,表数据按行-主顺序排列,插值算法针对行-主数组布局进行了优化。行主算法对内存中相邻的表数据进行操作。这将导致更快的缓存访问,使这些算法缓存友好。
下表总结了数组布局和缓存友好算法之间的关系。建议使用针对指定阵列布局进行优化的算法,以获得较好的性能。例如,当数组布局设置为时,使用行主插值算法行
代码生成。
三维表上的插值
1.打开示例模型rtwdemo_row_interpalg
.
open_system (“rtwdemo_row_interpalg”);
2.通过使用前面的过程为模型生成代码。通过重复所执行的步骤,从模型模拟和生成代码rtwdemo_row_lut2d
模型。
示例模型中使用的3-D表上的行主和列主插值在这里说明。
close_system (“rtwdemo_row_lut2d”, 0);close_system (“rtwdemo_row_interpalg”, 0);