For Each

Блок управления для Для Каждой подсистемы

Описание

Блок For Each служит блоком управления для блока For Each Subsystem. А именно, блок For Each позволяет блокам в Для Каждой подсистемы обработать элементы или входных сигналов или параметров маски независимо. Каждый блок в этой подсистеме, которая имеет состояния, обеспечивает отдельный набор состояний для каждого элемента или подрешетки, которую это обрабатывает. Когда набор блоков в подсистеме обрабатывает элементы или подрешетки, подсистема конкатенирует результаты сформировать выходные сигналы.

For Each Subsystem block icon, displayed alongside contents of For Each subsystem

Используйте Для Каждой подсистемы, чтобы итеративно вычислить выходные параметры после изменения параметры маски или входные параметры. Для этого сконфигурируйте разделение входных сигналов или параметров маски в диалоговом окне блока For Each.

Входные сигналы раздела к подсистеме

Чтобы задать который входные сигналы к разделу для каждой итерации в Для Каждой подсистемы, используйте вкладку Input Partition в диалоговом окне блока For Each. При определении сигнала, который будет разделен, задайте Partition Dimension, Partition Width и параметры Partition Offset.

Параметры маски раздела подсистемы

Можно разделить параметры маски блока For Each Subsystem. Разделение полезно для систем, которые имеют идентичные структуры в каждой итерации, но различных значениях параметров. В этом случае изменение модели, чтобы разделить дополнительные входные сигналы для каждого параметра является громоздким. Вместо этого добавьте параметр маски в Для Каждой подсистемы. Для получения дополнительной информации смотрите, Создают Простую Маску. Чтобы выбрать параметр маски для разделения, используйте вкладку Parameter Partition диалогового окна блока For Each. Для получения дополнительной информации смотрите, Выбирают Partition Parameters, ниже.

Конкатенация Выхода

Задайте размерность, по которой можно конкатенировать результаты путем определения Concatenation Dimension во вкладке Output Concatenation.

Результаты, сгенерированные блоком для каждой подрешетки, сложены по измерению конкатенации. По умолчанию размерность 1 (y - ось) используется, означая, что результаты сложены вертикально. Однако, если вы задаете размерность конкатенации 2, результаты конкатенируют вдоль горизонтального направления (x - ось). Таким образом, если процесс генерирует векторы-строки, то конкатенированным результатом является матрица в первом случае и вектор-строка во втором случае.

Выберите Partition Parameters

При выборе входного сигнала или параметра маски подсистемы для разделения, необходимо задать, как разложить его на элементы или подрешетки для каждой итерации. Сделайте это путем устанавливания целочисленных значений для Partition Dimension, Partition Width и параметров Partition Offset.

Как рисунок, считайте матрицу входного сигнала A из формы:

3-by-3 matrix A with all 9 elements displayed, showing d1 as the vertical dimension and d2 as the horizontal dimension

Маркирует d 1 и d 2, соответственно, задайте размерности 1 и 2. Если вы сохраняете настройку по умолчанию 1 и для размерности раздела и для ширины раздела и 0 для смещения раздела, затем Simulink® перпендикуляр срезов, чтобы разделить размерность 1 в ширине равняется ширине раздела, которая является одним элементом:

3-by-3 matrix A, with all 9 elements showing, partitioned into rows

Матрица А разлагается в эти три вектора-строки:

3-by-3 matrix A, decomposed into 3 3-element row vectors

Если вместо этого вы задаете 2 как размерность раздела, перпендикуляр срезов Simulink, чтобы определить размеры 2, чтобы сформировать три вектор-столбца:

3-by-3 matrix A, decomposed into 3 3-element column vectors

В дополнение к установке Partition Dimension к 2, если вы устанавливаете Partition Width на 2 и Partition Offset к -1, Simulink использует два наложения 3 2 разделы для обработки.

3-by-3 matrix A, decomposed into 2 overlapping 3-by-2 matrices

Для примера с помощью параметра Partition Offset смотрите, что Окружение Обрабатывает Используя Для Каждого Подсистемы.

По умолчанию все разделы входного сигнала или параметра маски обрабатываются. Чтобы обработать подмножество разделов, введите номер разделов к процессу как Number of iterations. В матричных примерах выше, если Partition Offset установлен в 0 (значение по умолчанию), и Number of iterations установлен в 2, только первые 2 строки или столбцы входной матрицы A обрабатываются.

Примечание

Только сигналы рассматриваются одномерными в Simulink. Параметры маски являются строкой или вектор-столбцами, согласно их ориентации. Чтобы разделить вектор-строку, задайте размерность раздела как 2 (вдоль столбцов). Чтобы разделить вектор-столбец, задайте размерность раздела как 1 (вдоль строк).

Порты

Вывод

развернуть все

Индекс текущего раздела (запускающийся в нуле), возвратился как скаляр.

Зависимости

Чтобы включить этот порт, выберите Show partition index output port.

Типы данных: int32 | double

Параметры

развернуть все

Введите вкладку раздела

Выберите каждый входной сигнал, вы хотите разделить и задать соответствующий Partition Dimension, Partition Width и параметры Partition offset. Смотрите страницу с описанием блока Inport для получения дополнительной информации.

Это свойство доступно только для чтения.

Список входных портов соединяется с блоком For Each Subsystem.

Выберите сигналы входного порта, соединенные с блоком For Each Subsystem к разделу в подрешетки или элементы. Для каждого порта, перечисленного в столбце Port, установите соответствующий флажок, чтобы разделить тот сигнал.

Программируемое использование

Параметры блоков: InputPartition
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте размерность, через которую можно нарезать выбранный массив входного сигнала. Получившиеся срезы перпендикулярны размерности, которую вы задаете. Срезы делят массив в подрешетки или элементы, как соответствующий.

1

Входной массив среза вдоль столбцов.

2

Входной массив среза вдоль строк.

n

Входной массив среза по измерению n.

Зависимости

Чтобы включить этот параметр, выберите Partition для соответствующего входного порта.

Программируемое использование

Параметры блоков: InputPartitionDimension
Ввод: символьный вектор
Значения: '1'| '2' | '<positive integer>'
Значение по умолчанию: '1'

Задайте ширину каждого среза раздела выбранного входного сигнала.

Зависимости

Чтобы включить этот параметр, выберите Partition для соответствующего входного порта.

Программируемое использование

Параметры блоков: InputPartitionWidth
Ввод: символьный вектор
Значения: '1' | '<integer>'
Значение по умолчанию: '1'

Задайте смещение для каждого среза раздела выбранного входного сигнала.

0

Никакое перемещение между срезами раздела, то есть, срезы раздела не имеют никаких разрывов между ними и не перекрываются.

целое число

Задайте смещение раздела, с помощью положительного целого числа, чтобы задать разрыв между срезами или отрицательным целым числом, чтобы указать на перекрытие. Сумма Partition Width и Partition Offset должна быть положительным целым числом.

Например, Partition Width 3 и Partition Offset -2 указывает, что каждый срез с 3 элементами перекрывает свои соседние срезы 2 элементами; тогда как Partition Width 2 и Partition Offset 1 указывает, что существует 1 элемент широкий разрыв между каждой парой граничения с 2 элементами широкие срезы.

Зависимости

Чтобы включить этот параметр, выберите Partition для соответствующего входного порта.

Программируемое использование

Параметры блоков: InputPartitionOffset
Ввод: символьный вектор
Значения: '0' | '<integer>'
Значение по умолчанию: '0'

Вкладка раздела параметра

Выберите каждый параметр маски, вы хотите разделить и задать соответствующий Partition Dimension и параметры Partition Width.

Это свойство доступно только для чтения.

Список параметров маски для блока For Each Subsystem. Параметры маски появляются в списке, только если вы добавили доступный для редактирования параметр в маску блока For Each Subsystem. Смотрите Создают Маски Блока.

Выберите параметры маски для блока For Each Subsystem к разделу в подрешетки или элементы. Для каждого порта, перечисленного в столбце Parameter, установите соответствующий флажок, чтобы разделить тот параметр маски.

Программируемое использование

Параметры блоков: SubsysMaskParameterPartition
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте размерность, через которую можно нарезать выбранный массив параметров маски. Получившиеся срезы перпендикулярны размерности, которую вы задаете. Срезы делят массив в подрешетки или элементы, как соответствующий.

1

Массив параметров маски среза вдоль столбцов.

2

Массив параметров маски среза вдоль строк.

n

Массив параметров маски среза по измерению n.

Зависимости

Чтобы включить этот параметр, выберите Partition для соответствующего параметра маски.

Программируемое использование

Параметры блоков: SubsysMaskParameterPartitionDimension
Ввод: символьный вектор
Значения: '1' | '<integer>'
Значение по умолчанию: '1'

Задайте ширину каждого среза раздела выбранного массива параметров маски.

Зависимости

Чтобы включить этот параметр, выберите Partition для соответствующего параметра маски.

Программируемое использование

Параметры блоков: SubsysMaskParameterPartitionWidth
Ввод: символьный вектор
Значения: '1' | '<positive integer>'
Значение по умолчанию: '1'

Выведите вкладку конкатенации

Для каждого выходного порта задайте размерность, по которой можно сложить (конкатенируют) результаты блока For Each Subsystem. Смотрите страницу с описанием блока Outport для получения дополнительной информации.

Это свойство доступно только для чтения.

Список выходных портов соединяется с блоком For Each Subsystem.

Для каждого выходного порта задайте размерность, по которой можно сложить результаты блока For Each Subsystem.

1

Сложите результаты в d 1 направление, то есть, вертикально. Если блок генерирует вектор-столбцы, результаты процесса конкатенации в векторе отдельного столбца. Если блок генерирует векторы-строки, результаты процесса конкатенации в матрице.

2

Сложите результаты в d 2 направления, то есть, горизонтально. Если блок генерирует векторы-строки, результаты процесса конкатенации в векторе одной строки. Если блок генерирует векторы-строки, результаты процесса конкатенации в матрице.

n

Сложите результаты в d n направление.

Программируемое использование

Параметры блоков: OutputConcatenationDimension
Ввод: символьный вектор
Значения: '1' | '<integer>'
Значение по умолчанию: '1'

Другие параметры

Управляйте отображением выходного порта для индекса раздела.

off

Скройте выходной порт.

on

Порт отображаемого вывода на блоке.

Программируемое использование

Параметры блоков: ShowIterationIndex
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте тип данных индекса раздела для выходного порта.

int32

Выберите подписанное 32-битное целое число.

double

Выберите дважды действительный.

Зависимости

Чтобы включить этот параметр, выберите Show partition index output port.

Программируемое использование

Параметры блоков: IterationIndexDataType
Ввод: символьный вектор
Значения: 'int32' | 'double'
Значение по умолчанию: 'int32'

Чтобы обработать подмножество данных, задайте количество срезов раздела входного сигнала или массива параметров маски к процессу, еще задайте -1 обработать все срезы. Номер не должен быть больше общего количества доступных срезов.

-1

Процесс все срезы

целое число

Количество срезов к процессу

Например, Number of iterations 3 указывает, что только первые 3 среза должны быть обработаны.

Программируемое использование

Параметры блоков: SpecifiedNumIters
Ввод: символьный вектор
Значения: '-1' | '<integer>'
Значение по умолчанию: '-1'

Примеры модели

Введен в R2010a