主要内容

使用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);结束

另请参阅

|

相关的话题