Препятствуйте тому, чтобы генератор кода создал функциональные специализации для выражений постоянного размера
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
по выражению.