Сворачивание выражений в константы в сгенерированном коде
оценивает out = coder.const(expression)expression и заменяет out с результатом анализа в сгенерированном коде.
[ вычисляет функцию с несколькими выходами, имеющую дескриптор out1,...,outN] = coder.const(handle,arg1,...,argN)handle. Затем он заменяет out1,...,outN с результатами анализа в сгенерированном коде.
По возможности генератор кода автоматически сворачивает выражения. Как правило, автоматическое постоянное сворачивание происходит только для выражений со скалярами. Использовать 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 с вызовами внешних функций.
Если coder.const не может выполнить постоянное сворачивание вызова функции, попробуйте принудительно выполнить постоянное сворачивание, сделав вызов функции внешним. Внешний вызов функции вызывает оценку вызова функции MATLAB, а не генератором кода. Например:
function yi = fcn(xi) y = coder.const(feval('rand',1,100)); yi = interp1(y,xi); end
См. раздел Использование coder.const с вызовами внешних функций.