采用coder.const
带有外部功能调用
您可以使用coder.const
将函数调用折叠成生成的代码中的常数。代码生成器评估函数调用,并用评估结果代替。如果使函数调用外部呼叫,则通过MATLAB评估函数调用®而不是代码生成器。采用coder.const
带有外部功能致电:
减少代码生成时间,尤其是对于计算密集型表达式的持续折叠。
强迫持续折叠
coder.const
无法稳定。
要使单个功能调用外部呼叫,请使用Feval
。要调用特定功能外部功能的所有调用,请使用coder.extrinsic
。
通过使用来减少代码生成时间coder.const
和Feval
考虑折叠计算密集型表达式的功能贝塞尔(3,ztable)
变成常数:
功能j = fcn(z)ztable = coder.const(0:0.01:100);jtable = coder.const(besselj(3,ztable));j = interp1(ztable,jtable,z);结尾
使代码生成FCN
更快,评估贝塞尔(3,ztable)
在matlab中使用Feval
。
功能j = fcn(z)ztable = coder.const(0:0.01:100);jtable = coder.const(feval(feval)('Besselj',3,ztable));j = interp1(ztable,jtable,z);结尾
通过使用恒定折叠coder.const
和Feval
考虑折叠函数调用的功能兰德(1,100)
变成常数。
功能yi = fcn(xi)y = coder.const(rand(1,100));yi = interp1(y,xi);结尾
代码生成以错误结束。
代码根FCN-args{0}-config:lib-报告
???CODER的输入不能简化为常数。
成功稳定兰德(1,100)
,通过使用MATLAB评估它Feval
。
功能yi = fcn(xi)y = coder.const(feval(feval)'兰德',1,100));yi = interp1(y,xi);结尾