主要内容

行-主阵列布局的插值算法

这个例子说明了2-D和3-D查找表中的插值算法,该算法针对行主数组布局进行了优化。文中还给出了优化后的列主阵列布局插值算法。使用行主插值算法生成的代码在对行主数组布局的表数据进行操作时具有最佳的速度和内存使用率。采用列主插值算法生成的代码在列主阵列布局下性能最佳。

在这个例子中,你:

  • 用列主和行主算法在二维查找表上进行插值。

  • 使用行主算法和数组布局生成代码。

  • 确定阵列布局,选择优化算法。

  • 用列主和行主算法在三维查找表上进行插值。

用二维行主算法进行模拟

1.打开示例模型rtwdemo_row_lut2d

模型=“rtwdemo_row_lut2d”;open_system(模型);

2.默认情况下,Simuli金宝appnk配置一个列-主算法和列-主数组布局的模型。该模型rtwdemo_row_lut2d配置为使用列主算法。模拟模型。方法中打开数据检查器,以观察输出模拟选项卡。输出值为4。

3.要启用行主算法,请打开“配置参数”对话框。在数学和数据类型窗格中,启用配置参数使用针对行主数组布局优化的算法.或者,在MATLAB命令窗口中输入:

set_param(模型,“UseRowMajorAlgorithm”“上”);

4.在数据检查器中模拟模型并观察结果。输出值为4。

列主算法和行主算法仅在插值顺序上有所不同。在某些情况下,由于在同一数据集上的操作顺序不同,您可能会在列主算法和行主算法的输出中遇到微小的数值差异。对于示例模型中使用的2-D查找表,这里说明了插值算法。

使用行主算法和数组布局生成代码

模型中使用的二维表数据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);

相关的话题