coder.const
在生成的代码中将表达式折叠为常量
说明
会计算 out
= coder.const(expression
)expression
并在生成的代码中将 out
替换为计算结果。
[
计算具有句柄 out1,...,outN
] = coder.const(handle
,arg1,...,argN
)handle
的多输出函数。然后,它会在生成的代码中将 out1,...,outN
替换为计算结果。要了解当 handle
接受零个输入并返回零个或一个输出时 coder.const
的行为,请参阅提示。
示例
输入参数
输出参量
提示
如果可能,代码生成器会自动对表达式进行常量折叠。通常,自动常量折叠发生在只具有标量的表达式中。当代码生成器不自行对表达式进行常量折叠时,请使用
coder.const
。当对计算密集型函数调用进行常量折叠时,为了减少代码生成时间,请执行外部函数调用。外部函数调用会导致由 MATLAB(而不是由代码生成器)来计算函数调用。例如:
function j = fcn(z) zTable = coder.const(0:0.01:100); jTable = coder.const(feval('besselj',3,zTable)); j = interp1(zTable,jTable,z); end
如果
coder.const
无法对函数调用进行常量折叠,请尝试执行外部函数调用来强制进行常量折叠。外部函数调用会导致由 MATLAB(而不是由代码生成器)来计算函数调用。例如:function yi = fcn(xi) y = coder.const(feval('rand',1,100)); yi = interp1(y,xi); end
假设您对具有零个输入和零个或一个输出的函数句柄调用
coder.const
。例如:在这种情况下,代码生成器不计算out = coder.const(@fcn);
fcn
,而是将out
设置为函数句柄@fcn
本身。要在这种特殊情况下强制计算fcn
,请在coder.const
命令中显式调用该函数。例如:out = coder.const(fcn());
扩展功能
版本历史记录
在 R2013b 中推出