Сверните выражения в константы в сгенерированном коде
out = coder.const(expression)
[out1,...,outN] = coder.const(handle,arg1,...,argN)
оценивает 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 с Внешними Вызовами функции.