主要内容

直接查找表算法行阵列布局

这个例子展示了如何仿真软件®选择一个向量或一个万博1manbetx二维矩阵表数据。在一个二维表,输出向量可以一列或一行根据模型的配置设置使用算法优化存储阵列布局。在这个例子中,直接查找表算法优化存储阵列布局。直接查找表算法优化的数组列为主的布局提出作为参考。使用生成的代码行插值算法执行速度和内存使用最好的表上操作时数据与存储阵列布局。生成的代码通过使用列为主与列为主的阵列布局算法性能最好。

在本例中,您:

  • 输出向量或一架飞机通过使用与列为主或行直接查找算法。

  • 保持语义切换时从列为主的算法行算法。

  • 生成代码通过使用一个数组行算法和布局。

模拟采用行存储算法,从表3 d输出向量

打开示例模型RowDLUT3DSelectVectorColumnDLUT3DSelectVector

open_system (“RowDLUT3DSelectVector”);open_system (“ColumnDLUT3DSelectVector”);

1。默认情况下,仿真软件配置万博1manbetx模型与列为主的算法和列为主的阵列布局。该模型ColumnDLUT3DSelectVector预配置使用列为主的算法。模拟模型,观察输出存储在工作空间变量

2。使行算法,打开配置参数对话框。在数学和数据类型窗格中,选择配置参数使用算法优化存储阵列布局另外,在MATLAB®命令窗口中,输入:

set_param (“ColumnDLUT3DSelectVector”,“UseRowMajorAlgorithm”,“上”);

3所示。模拟选项卡上,单击运行模拟模型。观察输出维度和数值的变化记录在工作空间变量

列为主和行算法不同语义的选择输出向量。例如,在一个二维表,模型选择一个列向量作为输出列为主的算法万博1manbetx和一个行向量行算法。在表3 d或更高维度,模型选择的输出向量的第一个维度表列为主的算法,从最后一个维度表的万博1manbetx行算法。选择向量的元素是连续的表中存储记忆。在这个例子中,最后一个维度是3 d的第三个维度表。由于语义变化,列为主和行直接查找表算法输出不同向量的大小和数值。

这些插图比较行存储和列为主的直接的向量输出查找表算法在三维表。

利用表排列保持语义

直接查找表输出向量或二维矩阵,该模型语义变化当您切换从一个列为主的算法行算法。保持语义或确保相同的输出给定同一块I / O连接,您必须排列表数据。否则,仿真软件传播错误万博1manbetx的维度下游块。

1。ColumnDLUT3DSelectVector /直接查找表(一天)有三维表数据T3d =重塑((桥),3、2、4)和两个输入端口与价值01(两者都是基于指数)。所选的输出向量T3d (:, 1, 2)(基于指数)列为主的算法。保存行算法在相同的语义模型,也就是说,选择相同的向量和相同的索引端口输入,排列表T3d_p =排列(T3d [2、3、1])。行算法,所选的向量T3d_p (1、2)

T3d_str = get_param (“ColumnDLUT3DSelectVector /直接查找表(一天),“表”);set_param (“ColumnDLUT3DSelectVector /直接查找表(一天),“表”,(“排列(”T3d_str,”,[2、3、1])”]);

2。从文件导入表数据时,您必须排列的表数据文件导入之前。这种排列使表中可调模拟和代码生成工作流。

通过使用行代码生成算法和阵列布局

交换表数据后,仿真软件配置模型万博1manbetxColumnDLUT3DSelectVector行模拟。模型相当于预配置模型RowDLUT3DSelectVector交换表数据和使用行算法。

1。建立这些模型行代码生成,打开配置参数对话框。除了启用使用算法优化存储阵列布局配置参数,代码生成>界面窗格中,设置配置参数阵列布局选择。这个配置参数使模型行代码生成。另外,在MATLAB命令窗口中,输入:

%为模型“ColumnDLUT3DSelectVector”set_param (“ColumnDLUT3DSelectVector”,“ArrayLayout”,“行”);%为模型“RowDLUT3DSelectVector”set_param (“RowDLUT3DSelectVector”,“ArrayLayout”,“行”);

2。直接查找表(一天)块对话框,检查排列3 d表数据。

3所示。改变你的当前文件夹在MATLAB写的文件夹。在C代码选项卡上,单击构建生成C代码。在生成的代码中,memcpy函数取代了循环。使用memcpy降低了存储数据的内存数量。这种优化提高执行速度。

模拟采用行存储算法,输出一个飞机从3 d表

open_system (“RowDLUT3DSelectPlane”);open_system (“ColumnDLUT3DSelectPlane”);

1。打开示例模型RowDLUT3DSelectPlane输出一个飞机从三维或二维矩阵表。

2。从模型模拟和生成代码通过重复执行的步骤ColumnDLUT3DSelectVector。行和列为主的直接查找算法,输出一个二维矩阵从3 d表说明。

close_system (“RowDLUT3DSelectVector”,0);close_system (“ColumnDLUT3DSelectVector”,0);close_system (“RowDLUT3DSelectPlane”,0);close_system (“ColumnDLUT3DSelectPlane”,0);

相关的话题