使用coder.const
外部函数调用
你可以用coder.const
在生成的代码中将函数调用折叠成常量。代码生成器计算函数调用并将其替换为计算结果。如果您使函数调用是外在的,则函数调用由MATLAB计算®而不是代码生成器。使用coder.const
使用外部函数调用:
减少代码生成时间,特别是对于计算密集型表达式的常量折叠。
力恒定折叠时
coder.const
是无法不断折叠的。
要使单个函数调用外在的,使用函数宏指令
。要使对特定函数的所有调用都是外部的,请使用coder.extrinsic
。
通过使用减少代码生成时间coder.const
与函数宏指令
考虑这个折叠计算密集型表达式的函数zTable besselj (3)
变成常数:
函数j = fcn(z) zTable = coder.const(0:01:100);jTable = coder.const(besselj(3,zTable));j = interp1(zTable,jTable,z);结束
使代码生成fcn
快,评估zTable besselj (3)
在MATLAB中使用函数宏指令
。
函数j = fcn(z) zTable = coder.const(0:01:100);jTable = coder.const(feval())“besselj”3 zTable));j = interp1(zTable,jTable,z);结束
使用coder.const强制常量折叠
与coder.feval
考虑这个折叠函数调用的函数兰特(1100)
变成常数。
函数y = coder.const(rand(1,100));Yi = interp1(y,xi);结束
代码生成以一个错误结束。
codegenfcnarg游戏{0}配置:自由报告
? ?编码器的输入。Const不能简化为常数。
成功地不断折叠兰特(1100)
,在MATLAB中用函数宏指令
。
函数y = coder.const(feval())“兰德”, 1100));Yi = interp1(y,xi);结束
另请参阅
相关的话题
这个话题有帮助吗?