这个例子展示了如何使用coder.const
.代码生成器将表达式或函数调用折叠到coder.const
语句转换为生成代码中的常量。因为生成的代码不必每次都计算表达式或调用函数,这种优化减少了生成代码的执行时间。
写一个函数AddShift
它需要一个输入转变
并把它加到向量的元素上。这个向量由前10个自然数的平方组成。AddShift
生成这个向量。
函数y = AddShift(转变)% # codegeny =(1:10)。^ 2 +转变;
生成的代码AddShift
使用codegen
命令。打开代码生成报告。
codegen配置:自由-launchreportAddShiftarg游戏0
代码生成器生成用于创建向量的代码。它增加了转变
在创建向量时,向向量的每个元素转换。的定义AddShift
生成的代码如下所示:
void AddShift(double Shift, double y[10]) {int k;For (k = 0;k < 10;k + +) {y [k] = (double) ((1 + k) * (1 + k)) +转变;}}
替换表达式(1:10)。^ 2
与coder.const((1:10) ^ 2)。
,然后生成代码AddShift
再次使用codegen
命令。打开代码生成报告。
codegen配置:自由-launchreportAddShiftarg游戏0
代码生成器创建包含前10个自然数平方的向量。在生成的代码中,它添加了转变
这个向量的每个元素。的定义AddShift
生成的代码如下所示:
void AddShift(double Shift, double y[10]) {int i;Static const signed char iv[10] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100};For (i = 0;我< 10;i++) {y[i] = (double)iv[i] + Shift;}}