Product, Matrix Multiply
标量和非标量的乘除运算或者矩阵的乘法和逆运算
库:
Simulink /
Commonly Used Blocks
Simulink /
Math Operations
Simulink /
Matrix Operations
HDL Coder /
Commonly Used Blocks
HDL Coder /
HDL Floating Point Operations
HDL Coder /
Math Operations
描述
Product 模块输出两个输入(两个标量、一个标量和一个非标量,或者具有相同维度的两个非标量)的相乘结果。指定此行为的默认参数值包括:
乘法:“
按元素(.*)
”输入的数目:“
2
”
下表显示了 Product 模块使用默认模块参数值的示例输入的输出。
输入和行为 | 示例 |
---|---|
标量 X 标量 输出两个输入的乘积。 |
|
标量 X 非标量 输出与非标量输入具有相同维度的非标量。非标量输出中的每个元素是标量输入与非标量输入中对应元素的乘积。 |
|
非标量 X 非标量 输出与输入具有相同维度的非标量。输出中的每个元素是与输入中对应元素的乘积。 |
|
Divide 和 Product of Elements 模块是 Product 模块的变体。
有关 Divide 模块的信息,请参阅 Divide。
有关 Product of Elements 模块的信息,请参阅 Product of Elements。
Product 模块(或者经过适当配置的 Divide 模块或 Product of Elements 模块)可以:
对任意多个标量、向量或矩阵输入进行数值乘除运算
对任意多个矩阵输入执行矩阵乘除运算
Product 模块可以执行标量或矩阵乘法运算,具体取决于乘法参数的值。此模块接受一个或多个输入,具体取决于输入的数目参数。输入的数目参数还指定要对每个输入执行的运算。
Product 模块可以输入标量、向量和矩阵的任意组合,对于这些输入,执行的运算必须具有数学定义的结果。该模块对输入执行指定的运算,然后输出结果。
Product 模块有两种模式:按元素模式,按元素处理非标量输入元素;矩阵模式,以矩阵方式处理非标量输入。
按元素模式
当乘法设置为“按元素(.*)
” 时,Product 模块即处于按元素模式,在这种模式下,模块将对任何非标量输入的单个数值元素执行运算。这相当于 MATLAB® 中的 .*
运算符。在按元素模式下,Product 模块可以执行各种乘法、除法和算术逆运算。
输入的数目参数的值控制存在多少个输入,以及是乘以还是除以每个输入以得到输出。当 Product 模块在按元素模式下且只有一个输入时,它的功能相当于 Product of Elements 模块。当模块具有多个输入时,任何非标量输入都必须具有相同的维度,而模块将输出具有这些维度的非标量。为了计算输出,模块首先将任何标量输入展开为与非标量输入具有相同维度的非标量。
下表显示了 Product 模块对于使用指定的输入的数目参数值的示例输入的输出。
参数值 | 示例 |
---|---|
输入的数目: |
|
输入的数目: |
|
输入的数目: |
|
输入的数目: |
|
输入的数目: |
|
矩阵模式
当乘法参数的值为“矩阵(*)
” 时,Product 模块即处于矩阵模式,在这种模式下,模块按矩阵处理非标量输入。这相当于 MATLAB 中的 *
运算符。在矩阵模式下,Product 模块可以对单个方阵进行逆运算,或者对任意多个具有维度的矩阵(通过数学方式为它们定义了结果)进行乘法或除法运算。
输入的数目参数的值既控制存在多少个输入,也控制是乘以还是除以每个输入矩阵以得到输出。输入的数目的语法与按元素模式相同。这两个模式的不同之处在于发生的乘法和除法的类型。
模块输入和模式之间的交互
Product 模块输入与其乘法模式之间的交互如下:
1
或*
或/
模块有一个输入端口。在按元素模式下,模块按照 Product of Elements 模块说明处理输入。在矩阵模式下,如果参数值为
1
或*
,则模块将输出输入值。如果值为/
,则输入必须为方阵(包括作为简并情况的标量),模块将输出逆矩阵。有关详细信息,请参阅按元素模式和矩阵模式。大于 1 的整数值
不带引号的含有两个或更多
*
和/
字符的字符串模块的输入的数量由字符向量长度指定。乘以与
*
字符相对应的每个输入来得到输出。除以与/
字符相对应的每个输入来得到输出。依乘法参数指定的按元素模式或矩阵模式进行运算。有关详细信息,请参阅按元素模式和矩阵模式。
仿真与代码生成之间的预期差异
对于复数浮点输入的按元素运算,仿真和代码生成结果在接近溢出情况下可能会有所差异。尽管在“配置参数”对话框的代码生成 > 接口窗格上选中了复数且取消选中了非有限数,代码生成器也不会为中间溢出生成特殊情况代码。此方法可以提高嵌入式运算在不含极值的一般情况下的效率。如果输入可能包含极值,必须显式处理这些情况。
如果 NaN
和 inf
值在数学上没有意义,则生成的代码可能不会为这些值生成与仿真相同的模式。例如,如果仿真输出包含 NaN
,生成的代码的输出也会包含 NaN
,但不一定在相同的位置。
端口
输入
输出
参数
模块特性
数据类型 |
|
直接馈通 |
|
多维信号 |
|
可变大小信号 |
|
过零检测 |
|
扩展功能
版本历史记录
在 R2006a 之前推出