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