Умножение и деление скаляров и нескаляров или умножение и инвертирование матриц
Simulink/Часто используемые блоки
Операции с симуляцией/математикой
Кодер HDL/обычно используемые блоки
Кодер HDL/Операции с плавающей точкой HDL
Кодер HDL/Математические операции
Блок Произведения выводит результат умножения двух входов: двух скаляров, скаляра и нескаляра или двух нескаляров, имеющих одинаковые размеры. Значения параметров по умолчанию, определяющие это поведение:
Умножение:
Element-wise(.*)
Количество входов:
2
В этой таблице показаны выходные данные блока Product, например входные данные с использованием значений параметров блока по умолчанию.
| Входные данные и поведение | Пример |
|---|---|
Скалярный X скалярный Выведите произведение двух входов. |
|
Скалярный X нескалярный Выведите нескалярный элемент, имеющий те же размеры, что и входной нескалярный элемент. Каждый элемент выходного nonscalar является произведением входного скаляра и соответствующего элемента входного nonscalar. |
|
Нескалярный X нескалярный Вывод нескалярного изображения, имеющего те же размеры, что и входные данные. Каждый элемент выходного сигнала является произведением соответствующих элементов входных сигналов. |
|
Блоки Разделить (Divide) и Продукт элементов (Product of Elements) являются вариантами блока Продукт (Product).
Сведения о блоке разделения см. в разделе Разделение.
Дополнительные сведения о блоке «Изделие из элементов» см. в разделе Изделие из элементов.
Блок «Product» (или блок «Divide» или блок «Product of Elements» при соответствующей настройке) может:
Численное умножение и деление любого числа скалярных, векторных или матричных входов
Умножение и деление матрицы на любое количество входов матрицы
Блок произведения выполняет скалярное или матричное умножение в зависимости от значения параметра умножения. Блок принимает один или несколько входов, в зависимости от параметра Количество входов. Параметр Number of inputs также определяет операцию, выполняемую для каждого входа.
Блок произведения может вводить любую комбинацию скаляров, векторов и матриц, для которых выполняемая операция имеет математически определенный результат. Блок выполняет указанные операции на входах, затем выводит результат.
Блок Product имеет два режима: Element-wise mode, который обрабатывает нескалярные входы по элементам, и Matrix mode, который обрабатывает нескалярные входы как матрицы.
Если для параметра «Умножение» задано значение Element-wise(.*), блок Product находится в режиме Element-wise, в котором он работает с отдельными числовыми элементами любых нескалярных входов. Эквивалентом MATLAB ® является .* оператор. В элементном режиме блок произведения может выполнять множество операций умножения, деления и арифметической инверсии.
Значение параметра Количество входов определяет, сколько входов существует и умножается или делится каждый из них для формирования выходного сигнала. Если блок Product находится в элементном режиме и имеет только один вход, он функционально эквивалентен блоку Product of Elements. Когда блок имеет несколько входов, любые нескалярные входы должны иметь идентичные размеры, а блок выводит нескалярные с этими размерами. Чтобы вычислить вывод, блок сначала расширяет скалярный ввод до нескалярного, который имеет те же размеры, что и нескалярный ввод.
В этой таблице показаны выходные данные блока Product, например входные данные, с использованием указанных значений параметра Number of inputs.
| Значения параметров | Примеры |
|---|---|
Количество входов:
|
|
Количество входов:
|
|
Количество входов:
|
|
Количество входов: |
|
Количество входов:
|
|
Если параметр Multiplication имеет значение Matrix(*), блок Product находится в режиме Matrix, в котором он обрабатывает нескалярные входные данные в виде матриц. Эквивалентом MATLAB является * оператор. В режиме «Матрица» блок «Произведение» может инвертировать одну квадратную матрицу или умножить и разделить любое число матриц, имеющих размеры, для которых результат математически определен.
Значение параметра Количество входов управляет количеством входов и тем, умножается ли или делится каждая входная матрица для формирования выхода. Синтаксис параметра Number of input (количество входов) аналогичен синтаксису в режиме element-wise. Разница между режимами заключается в типе происходящего умножения и деления.
Для операций по элементам на сложных входах с плавающей запятой результаты моделирования и генерации кода могут отличаться в случаях, близких к переполнению. Несмотря на то, что в диалоговом окне «Параметры конфигурации» (Configuration Parameters) выбраны комплексные номера и не выбраны неграничные номера на панели «Создание кода» (Code Generation) > «Интерфейс» (Interface), генератор кода не выдает код особого случая для промежуточных переполнений. Этот способ повышает эффективность встроенных операций для общего случая, который не включает экстремальные значения. Если входные данные могут содержать экстремальные значения, необходимо явно управлять этими случаями.
Сгенерированный код может создать не тот же шаблон NaN и inf значения как моделирование, когда эти значения математически бессмысленны. Например, если выходные данные моделирования содержат NaN, вывод из сгенерированного кода также содержит NaN, но не обязательно там же.
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
Разделиться | Точечное произведение | Произведение элементов