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