主要内容

行算法行阵列布局

这个例子展示了如何使用行算法生成高效的代码。你可以使使用算法优化存储阵列布局配置参数启用有效的行数组行算法优化布局。生成的代码通过使用行算法执行更好的响应速度与内存利用率上操作时数据与存储阵列布局。

在本例中,您使用行数据首先使用默认列为主的算法,然后利用行算法。这种比较有助于确定合适的算法设置来实现不同的需求。

通过使用生成代码行数组的默认列为主的算法布局

打开示例模型ex_rowmajor_algorithm

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

模型包含一个元素的块和块的输入是一个数组。默认情况下,模型®配置模金宝app型与列为主的算法和列为主的阵列布局。在本例中,您配置的阵列布局模型行。指定阵列布局,打开嵌入式编码器应用程序,然后打开配置参数对话框。在代码生成>界面窗格中,设置配置参数阵列布局选择。另外,在MATLAB®命令窗口中,输入:

set_param(模型,“ArrayLayout”,“行”);

改变你的当前文件夹在MATLAB写的文件夹。然后从模型通过使用生成代码slbuild功能或按Ctrl + B

currentDir = pwd;[~,cgDir] = rtwdemodir ();%生成代码和捕获代码生成的信息价值值= evalc (“slbuild (“ex_rowmajor_algorithm”)”);

检查生成的ex_rowmajor_algorithm_step阶跃函数的ex_rowmajor_algorithm.c

文件= fullfile (“ex_rowmajor_algorithm_ert_rtw”,“ex_rowmajor_algorithm.c”);rtwdemodbtype(文件,“/ *模型阶跃函数* /”,/ *模型初始化函数的,1,1);
/ *模型阶跃函数* /空白ex_rowmajor_algorithm_step (void) {int32_T我;int32_T i_0;int32_T tmp;/ *金额:< Root > /元素之和Dim1”包含:*不变:“< Root > / Constant1”* / ex_rowmajor_algorithm_Y。Out2 f = -0.0;(我= 0;我< 2;我为(+ +){i_0 = 0;i_0 < 3;i_0 + +) {tmp = (i_0 < < 1) + i;ex_rowmajor_algorithm_Y。Out2 = (((ex_rowmajor_algorithm_ConstP.Constant1_Value[tmp] + ex_rowmajor_algorithm_Y.Out2) + ex_rowmajor_algorithm_ConstP.Constant1_Value[tmp + 6]) + ex_rowmajor_algorithm_ConstP.Constant1_Value[tmp + 12]) + ex_rowmajor_algorithm_ConstP.Constant1_Value[tmp + 18]; } } /* End of Sum: '/Sum of Elements Dim1' */ }

阵列布局被设置为使用算法优化存储阵列布局配置参数设置,代码生成器使用列为主的算法。算法遍历数据列为主的顺序虽然数据按行顺序。这个过程需要一些额外操作生成的代码,使代码效率较低。当使用算法优化存储阵列布局参数设置为代码生成器,不包括其他向量化的优化,如单实例,多个数据(SIMD)优化。

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

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

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

后使行算法,生成代码。

值= evalc (“slbuild (“ex_rowmajor_algorithm”)”);

检查生成的ex_rowmajor_algorithm_step阶跃函数的ex_rowmajor_algorithm.c

文件= fullfile (“ex_rowmajor_algorithm_ert_rtw”,“ex_rowmajor_algorithm.c”);rtwdemodbtype(文件,“/ *模型阶跃函数* /”,/ *模型初始化函数的,1,1);
/ *模型阶跃函数* /空白ex_rowmajor_algorithm_step (void) {int32_T我;/ *金额:< Root > /元素之和Dim1”包含:*不变:“< Root > / Constant1”* / ex_rowmajor_algorithm_Y。Out2 f = -0.0;(我= 0;我< 24;我+ +){ex_rowmajor_algorithm_Y。Out2 + = ex_rowmajor_algorithm_ConstP.Constant1_Value[我];}/ *和结束:“< Root > /元素之和Dim1 ' * /}

阵列布局被设置为使用算法优化存储阵列布局配置参数设置,代码生成器生成高效的代码。代码生成器使用行算法遍历数据按行顺序,减少了操作的数量在生成的代码。然而,你可能会注意到一个小数字列为主的输出和行算法的区别由于操作顺序。

相关的话题