coder.const
在生成的代码中将表达式折叠为常量
说明
会计算 out = coder.const(expression)expression 并在生成的代码中将 out 替换为计算结果。
[ 计算具有句柄 out1,...,outN] = coder.const(handle,arg1,...,argN)handle 的多输出函数。然后,它会在生成的代码中将 out1,...,outN 替换为计算结果。要了解当 handle 接受零个输入并返回零个或一个输出时 coder.const 的行为,请参阅提示 (MATLAB Coder)。
示例
输入参数
输出参量
限制
您不能对字典、字典键或字典值使用
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
请参阅Use coder.const with Extrinsic Function Calls (MATLAB Coder)。
如果
coder.const无法对函数调用进行常量折叠,请尝试执行外部函数调用来强制进行常量折叠。外部函数调用会导致由 MATLAB(而不是由代码生成器)来计算函数调用。例如:function yi = fcn(xi) y = coder.const(feval('rand',1,100)); yi = interp1(y,xi); end
请参阅Use coder.const with Extrinsic Function Calls (MATLAB Coder)。
假设您对具有零个输入和零个或一个输出的函数句柄调用
coder.const。例如:在这种情况下,代码生成器不计算out = coder.const(@fcn);
fcn,而是将out设置为函数句柄@fcn本身。要在这种特殊情况下强制计算fcn,请在coder.const命令中显式调用该函数。例如:out = coder.const(fcn());
扩展功能
版本历史记录
在 R2013b 中推出
另请参阅
主题
- Use coder.const with Extrinsic Function Calls (MATLAB Coder)