主要内容

采用coder.const带有外部功能调用

您可以使用coder.const将函数调用折叠成生成的代码中的常数。代码生成器评估函数调用,并用评估结果代替。如果使函数调用外部呼叫,则通过MATLAB评估函数调用®而不是代码生成器。采用coder.const带有外部功能致电:

  • 减少代码生成时间,尤其是对于计算密集型表达式的持续折叠。

  • 强迫持续折叠coder.const无法稳定。

要使单个功能调用外部呼叫,请使用Feval。要调用特定功能外部功能的所有调用,请使用coder.extrinsic

通过使用来减少代码生成时间coder.constFeval

考虑折叠计算密集型表达式的功能贝塞尔(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.constFeval

考虑折叠函数调用的功能兰德(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);结尾

也可以看看

|

相关话题