exponenta event banner

cgsl_0202: Использование подсистем For, While и For с векторными сигналами

Идентификатор: Заголовокcgsl_0202: Использование подсистем For, While и For с векторными сигналами
ОписаниеПри разработке модели для генерации кода
AИспользуйте для, время и для каждой подсистемы для вычислений, которые требуют итеративного поведения или работают с подмножеством (кадром) данных.
BИзбегайте использования подсистем For, While или For Each для базовых векторных операций.
ОбъяснениеA, BИзбегайте избыточных петель.
См. также
Последнее изменениеR2010b
Примеры

Рекомендуемый метод для предыдущего расчета состоит в размещении блока усиления вне подсистемы For. Если вычисления требуются как часть большего алгоритма, можно избежать вложенности for с помощью блоков «Вектор индекса» и «Назначение».

Рекомендуется

for (s1_iter = 0; s1_iter < 10; s1_iter++) {
  RecommendedOut[s1_iter] = 2.3 * vectorInput[s1_iter];
}

Обычной ошибкой является встраивание базовых векторных операций в подсистему For, While или For Each. Следующий пример включает простое усиление вектора в подсистеме For, что приводит к ненужному вложению for петли.

Не рекомендуется

for (s1_iter = 0; s1_iter < 10; s1_iter++) {
  for (i = 0; i < 10; i++) {
    NotRecommendedOut[i] = 2.3 * vectorInput[i];
  }
}