Logical Operator
Выполнить указанную логическую операцию над входными сигналами.
Описание
Блок Logical Operator выполняет заданную логическую операцию для одного или нескольких операндов. Входное значение интерпретируется как true (1)
, если оно не равно нулю, и false (0)
, если оно равно нулю.
Конкретную логическую операцию можно выбрать в настройках блока при помощи параметра Operator.
В таблице показаны поддерживаемые логические операции:
Операция | Описание |
---|---|
|
true, если все входы false |
|
true, если хотя бы один вход true |
|
true, если хотя бы один вход false |
|
true, когда нет входных данных в значении true |
|
true, если нечетное количество входов true |
|
true, если четное количество входов true |
|
true, если вход false |
Значок блока меняется в зависимости от выбранной в параметре Operator логической операции. Количество входных портов задается в параметре Number of input ports.
Размер вывода зависит от размера входного вектора и выбранного оператора:
-
Если блок имеет более одного входа, размерность остальных портов расширяется до максимально возможного с использованием broadcast-операций. Например, если сигналы на входе имеют размеры 4 на 1, 1 на 5 и 1 на 1, то при помощи broadcast на выходе получится массив размером 4 на 5. Этот процесс автоматически расширяет массивы по измерениям, равным единице, чтобы согласовать размерности входных данных для вычислений.
Broadcast — это процесс автоматического приведения массивов к совместимым размерам для выполнения операций. Broadcast работает по правилам "распространения" по измерениям, равным единице: если массивы имеют несовпадающие размеры, но хотя бы одно из измерений равно 1, то операция выполняется, при этом массив расширяется по соответствующему измерению. Размерность скалярных входных сигналов увеличивается до размерности нескалярных входных сигналов, что также достигается с помощью broadcast-операции. Если у блока несколько входов, и один из них скалярный, broadcast автоматически расширяет его до той же размерности, что и остальные входные данные.
Если блок имеет более одного входа, выход имеет те же размерности, что и входы, и каждый выходной элемент является результатом применения указанной логической операции к соответствующим входным элементам. Например, если задана операция
AND
, а входные данные представляют собой массивы 2 на 2, на выходе будет массив 2 на 2, верхний левый элемент которого является результатом примененияAND
к верхним левым элементам входных данных, и так далее. -
Для одного входного вектора блок применяет операцию (кроме оператора
NOT
) ко всем элементам вектора. Выход в этом случае всегда является скаляром. -
Оператор
NOT
принимает только один вход, который может быть скаляром или вектором. Если вход представляет вектор, выход представляет вектор того же размера, содержащий логические дополнения элементов входного вектора.
Порты
Вход
Port_1 — первый входной сигнал
скаляр
| вектор
| матрица
Первый входной сигнал. Скаляр, вектор или матрица.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, Bool
Port_2 — второй входной сигнал
скаляр
| вектор
| матрица
Второй входной сигнал. Скаляр, вектор или матрица.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, Bool
Port_N — N-й входной сигнал
скаляр
| вектор
| матрица
N-й входной сигнал. Скаляр, вектор или матрица.
Зависимости
Чтобы использовать дополнительные входные порты, используйте параметр Number of input ports.
Типы данных: Float16
, Float32
, Float64
, Int8
, Int16
, Int32
, Int64
, UInt8
, UInt16
, UInt32
, UInt64
, Bool
Параметры
Operator — логический оператор
AND (по умолчанию)
| OR
| NAND
| NOR
| XOR
| NXOR
| NOT
Выберите логический оператор, который будет применяться к входным сигналам блока.
-
AND
— true, если все входы true. -
OR
— true, если хотя бы один вход true. -
NAND
— true, если хотя бы один вход false. -
NOR
— true, когда нет входных данных в значении true. -
XOR
— true, если нечетное количество входов true. -
NXOR
— true, если четное количество входов true. -
NOT
— true, если вход false.
Параметр блока |
|
Значение |
|
По умолчанию |
|
Number of input ports — количество входов
2 (по умолчанию)
| положительное число
Задайте количество входных портов блока как положительное целое число.
Зависимости
Этот параметр недоступен, если для параметра Operator установлено значение NOT
.
Параметр блока |
|
Значение |
|
По умолчанию |
|