Предотвратите создание генератором кода специализаций функций для выражений постоянного размера
coder.ignoreSize(
объявляет, что генератор кода не должен использовать постоянный размер выражения для создания специализаций функции.expression
)
Если ваш MATLAB® код вызывает функцию несколько раз и пропускает входы разных размеров, генератор кода может создать функциональные специализации для каждого размера. Чтобы избежать этой проблемы, используйте coder.ignoreSize
на входном параметре функции. Для примера этот код использует coder.ignoreSize
чтобы избежать создания нескольких копий функции indexOf
:
function [out1, out2] = test1(in) a = 1:10; b = 2:40; % Without coder.ignoreSize duplicate functions are generated out1 = indexOf(coder.ignoreSize(a), in); out2 = indexOf(coder.ignoreSize(b), in); end function index = indexOf(array, value) coder.inline('never'); for i = 1:numel(array) if array(i) == value index = i; return end end index = -1; return end
Чтобы сгенерировать код, введите:
codegen test1 -config:lib -report -args {1}
Если вы присвоите выражение переменной и объявите переменную как переменный размер при помощи coder.varsize
, это объявление имеет тот же эффект, что и использование coder.ignoreSize
на выражение.