使用coder.const
与外部函数调用
您可以使用coder.const
函数调用折叠成一个常数在生成的代码。代码生成器评估函数调用和替换的结果评价。如果你使函数调用外在,函数调用由MATLAB计算®而不是由代码生成器。使用coder.const
一个外部函数调用:
减少代码生成时间,特别是对于常数合并计算密集型的表达式。
力常数合并时
coder.const
无法constant-fold。
一个单独的函数调用外在,使用函数宏指令
。让所有调用一个特定的外在功能,使用coder.extrinsic
。
减少通过使用代码生成时间coder.const
与函数宏指令
考虑这个函数,折叠一个计算量的表达式zTable besselj (3)
为一个常数:
函数j = fcn (z) zTable = coder.const (0:0.01:100);zTable jTable = coder.const (besselj (3));j = interp1 (zTable, jTable, z);结束
代码生成的fcn
快,评估zTable besselj (3)
在MATLAB使用函数宏指令
。
函数j = fcn (z) zTable = coder.const (0:0.01:100);jTable = coder.const(函数宏指令(“besselj”3 zTable));j = interp1 (zTable, jTable, z);结束
力常数合并使用coder.const
与函数宏指令
考虑折叠函数调用这个函数兰特(1100)
为一个常数。
函数易= fcn (xi) y = coder.const (rand (1100));易= interp1 (y, xi);结束
代码生成以一个错误。
codegenfcnarg游戏{0}配置:自由报告
? ? ?编码器的输入。常量不能简化为一个常数。
成功constant-fold兰特(1100)
在MATLAB使用,评估它函数宏指令
。
函数易= fcn (xi) y = coder.const(函数宏指令(“兰德”,1100));易= interp1 (y, xi);结束