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