Документация Engee

Product

Умножение и деление скаляров и нескаляров.

Product

product

Product of Elements

product of elements

Описание

Блок Product выводит результат умножения или деления входных сигналов.

Значок блока, выполняемая операция и количество портов меняются в зависимости от значения параметров Multiplication и Number of inputs.

В этой таблице показаны выходные данные блока Product для примерных входных данных с использованием значений параметров блока:

  • Multiplication: Element-wise(.*)

  • Number of inputs: */

Входные данные Поведение блока

скаляр ÷ скаляр

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

скаляр ÷ нескаляр

Выводит нескаляр, имеющий те же размеры, что и входной нескаляр. Каждый элемент выходного нескаляра является результатом деления входного скаляра на соответствующий элемент входного нескаляра.

нескаляр ÷ нескаляр

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

Блок Product может:

  • Численно умножать и делить любое количество скалярных, векторных или матричных входных данных.

  • Выполнять матричное умножение и деление на любом количестве матричных входных данных.

Блок Product выполняет поэлементное или матричное умножение или деление, в зависимости от значения параметра Multiplication. Блок принимает один или несколько потоков входных данных, в зависимости от параметра Number of inputs. Параметр Number of inputs также определяет операцию, которую необходимо выполнить для каждого входа.

Входными данными для блока Product может быть любая комбинация скаляров, векторов и матриц, для которых выполняемая операция имеет математически определенный результат. Блок выполняет указанные операции над входными данными, затем выводит результат.

Блок Product имеет два режима:

  • Element-wise mode, который обрабатывает нескалярные входные данные поэлементно.

  • Matrix mode, который обрабатывает нескалярные входные данные в виде матриц.

Element-Wise Mode

Когда вы устанавливаете Multiplication на Element-wise(.*), блок Product находится в режиме Element-wise mode, в котором он работает с отдельными числовыми элементами любых нескалярных входных данных. В режиме Element-wise mode блок Product может выполнять различные операции умножения, деления и арифметической инверсии.

Значение параметра Number of inputs определяет как количество входных данных, так и то, будет ли каждый из них умножен или разделен для формирования выходных данных.

  • Когда блок Product находится в режиме Element-wise mode и имеет только один вход, он работает так, как описано в разделе Алгоритмы.

Чтобы вычислить выходные данные, блок сначала расширяет все входы до единого размера (используя стандартный broadcast), а затем выполняет поэлементные действия.

Matrix Mode

Когда значение параметра Multiplication равно Matrix(*), блок Product находится в режиме Matrix mode, в котором он обрабатывает нескалярные входные данные в виде матриц. В этом режиме блок Product может инвертировать одну квадратную матрицу или умножать и делить любое количество матриц, размеры которых определены математически.

Значение параметра Number of inputs определяет как количество существующих входных данных, так и то, будет ли каждая входная матрица умножена или разделена для формирования выходных данных. Синтаксис Number of inputs такой же, как и в Element-wise mode. Разница между режимами заключается в типе умножения и деления.

Взаимодействия между входами блока и режимами

Взаимодействия между входными данными блока Product и его режимами Multiplication:

  • * или /

    Блок имеет один входной порт. В режиме Element-wise mode блок обрабатывает входные данные, как описано в разделе Алгоритмы. В режиме Matrix mode, если значение параметра равно 1 или *, блок выводит входное значение. Если значение равно /, входные данные должны быть квадратной матрицей (включая скаляр в качестве вырожденного случая), и блок выводит обратную матрицу. Дополнительные сведения см. в разделах Element-Wise Mode и Matrix Mode.

  • Строка без кавычек, состоящая из двух или более символов * и /

    Блок имеет количество входных данных, заданное длиной символьного вектора. Каждый входной сигнал, соответствующий символу *, умножается на выходной сигнал. Каждый входной сигнал, соответствующий символу /, делится на выходной. Операции выполняются в режиме Element-wise mode или в режиме Matrix mode, как указано параметром Multiplication. Дополнительные сведения см. в разделах Element-Wise Mode и Matrix Mode.

Порты

Вход

x — входной сигнал для умножения
скаляр | вектор | матрица

Входной сигнал для умножения на другие входные сигналы.

Зависимости

Чтобы использовать один или несколько портов x, укажите один или несколько символов * для параметра Number of inputs и установите для параметра Multiplication значение Element-wise(.*).

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Fixed, Bool

Поддержка комплексных чисел: Да

÷ — входной сигнал для деления
скаляр | вектор | матрица

Входной сигнал для операций деления или инверсии.

Зависимости

Чтобы использовать один или несколько портов ÷, укажите один или несколько символов / для параметра Number of inputs и установите для параметра Multiplication значение Element-wise(.*).

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Fixed, Bool

Поддержка комплексных чисел: Да

* — входной сигнал для умножения
скаляр | вектор | матрица

Входной сигнал для умножения на другие входные сигналы.

Зависимости

Чтобы использовать один или несколько портов *, укажите один или несколько символов * для параметра Number of inputs и установите для параметра Multiplication значение Matrix(*).

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Fixed, Bool

Поддержка комплексных чисел: Да

Inv — входной сигнал для деления или инвертирования
скаляр | вектор | матрица

Входной сигнал для операций деления или инверсии.

Зависимости

Чтобы использовать один или несколько портов Inv, укажите один или несколько символов / для параметра Number of inputs и установите для параметра Multiplication значение Matrix(*).

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Fixed, Bool

Поддержка комплексных чисел: Да

Выход

Port_1 — выходной сигнал
скаляр | вектор | матрица

Выходной сигнал, вычисляемый путем умножения или деления входных сигналов.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Поддержка комплексных чисел: Да

Параметры

Main

Number of inputs — количество и названия входных портов и тип операции
*/ (по умолчанию)

Операции, выполняемые блоком, – умножение или деление.

Когда вы указываете:

  • * или /*

    Блок имеет один входной порт. В режиме Element-wise mode блок работает так, как описано в разделе Алгоритмы. В режиме Matrix mode, если значение параметра равно 1 или *, блок выводит входное значение. Если значение равно /, входные данные должны быть квадратной матрицей (включая скаляр в качестве вырожденного случая), и блок выводит обратную матрицу. Дополнительные сведения см. в разделах Element-Wise Mode и Matrix Mode.

  • Строка без кавычек, состоящая из двух или более символов * и /

    Блок имеет количество входных данных, заданное длиной символьного вектора. Каждый входной сигнал, соответствующий символу *, умножается на выходной сигнал. Каждый входной сигнал, соответствующий символу /, делится на выходной. Операции выполняются в режиме Element-wise mode или в режиме Matrix mode, как указано параметром Multiplication. Дополнительные сведения см. в разделах Element-Wise Mode и Matrix Mode.

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

Параметр блока

Inputs

Значения

*/ | ** | */ | */* |…​

По умолчанию

*/

Multiplication — тип умножения
Element-wise(.*) (по умолчанию) | Matrix(*)

Укажите, в каком режиме блок выполняет умножение или деление Element-wise(.*) или Matrix(*).

Дополнительные сведения см. в разделах Element-Wise Mode и Matrix Mode.

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

Параметр блока

Multiplication

Значения

Element-wise(.*) | Matrix(*)

По умолчанию

Element-wise(.*)

Алгоритмы

Блок Product с одним входом в режиме Element-Wise использует представленные ниже алгоритмы для выполнения поэлементных операций над входными данными:

Входные данные Поэлементная операция Алгоритм

Действительный скаляр,

Умножение

Деление

Действительный вектор или матрица с элементами,

Умножение

Деление

Комплексный скаляр,

Умножение

Деление

Комплексный вектор или матрица с элементами,

Умножение

Деление