Сверните выражения в константы в сгенерированном коде
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 с Внешними Вызовами функции.