Разблокируйте for-loop путем создания копии тела цикла для каждой итерации цикла
coder.unroll() разворачивает for-цикл. coder.unroll вызов должен быть на линии сам по себе, непосредственно предшествующей for-цикл, который он разворачивает.
Вместо создания for-loop в сгенерированном коде, цикл развертывания создает копию for-loop тело для каждой итерации цикла. В каждой итерации индекс цикла становится постоянным. Чтобы развернуть цикл, генератор кода должен быть в состоянии определить границы for-цикл.
Для небольших плотных циклов размотка может улучшить эффективность. Однако для больших циклов развертывание может значительно увеличить время генерации кода и сгенерировать неэффективный код.
coder.unroll игнорируется вне генерации кода.
Иногда генератор кода разворачивает for-цикл, хотя вы не используете coder.unroll. Для примера, если a for-цикл индексы в гетерогенный массив ячеек или в varargin или varargoutгенератор кода разворачивает цикл. Путем разворачивания цикла генератор кода может определить значение индекса для каждой итерации цикла. Генератор кода использует эвристику, чтобы определить, когда разворачивать for-цикл. Если эвристика не может идентифицировать, что развертывание оправдано, или если количество итераций цикла превышает предел, генерация кода прекращает работать. В этих случаях можно принудительно разворачивать цикл при помощи coder.unroll. Смотрите Non-Constant Index в varargin или varargout в цикле for-Loop.