MATLAB®有两种不同类型的算术运算:数组运算和矩阵运算。您可以使用这些算术运算来执行数值计算,例如,将两个数字相加,将数组元素提高到给定的乘方,或将两个矩阵相乘。
矩阵运算遵循线性代数的规则。相反,数组操作逐个元素执行操作,并支持多维数组。金宝app句点字符(.
)将数组操作与矩阵操作区分开来。然而,由于矩阵和数组操作是相同的加法和减法,字符对.+
和.-
是不必要的。
数组操作在向量、矩阵和多维数组的相应元素上执行一个元素一个元素的操作。如果两个操作数具有相同的大小,则第一个操作数中的每个元素将与第二个操作数中相同位置的元素匹配。如果操作数具有兼容的大小,则每个输入将根据需要隐式展开,以匹配另一个输入的大小。有关更多信息,请参见基本操作的兼容数组大小.
作为一个简单的示例,可以将两个大小相同的向量相加。
A = [1 1 1]
A = 1 1 1
B = [1 2 3]
2 .选B
A + B
4 . n .诱惑,诱惑
如果一个操作数是标量,而另一个不是,则MATLAB隐式扩展标量,使其与另一个操作数相同大小。例如,可以计算标量和矩阵的元素乘积。
A = [1 2 3;1 2 3)
A = 1 2 3 1 2 3
3 . *
Ans = 3 6 9 3 6 9
如果你用3 × 3矩阵减去1 × 3向量,隐式展开也可以,因为这两种大小是兼容的。当执行减法时,向量隐式展开成一个3 × 3矩阵。
A = [1 1 1;2 2 2;3 3 3]
A = 1 1 1 2 2 2 3 3 3
M = [2 4 6]
6 . n .诱惑,诱惑
一个米
Ans = -1 -3 -5 0 -2 -4 1 -1 -3
行向量和列向量具有兼容的大小。如果将一个1 × 3向量添加到一个2 × 1向量,那么在MATLAB执行元素加法之前,每个向量都将隐式扩展为一个2 × 3矩阵。
X = [1 2 3]
X = 1 2 3
y = [10;15)
Y = 10 15
x + y
Ans = 11 12 13 16 17 18
如果两个操作数的大小不兼容,则会出现错误。
A = [8 1 6;3 5 7;4 9 2)
A = 8 1 6 3 5 7 4 9 2
M = [2 4]
M = 2
一个米
矩阵维数必须一致。
下表对MATLAB中的算术数组运算符进行了总结。有关函数的详细信息,请单击最后一列中函数参考页面的链接。
操作符 |
目的 |
描述 |
参考页面 |
---|---|---|---|
|
除了 |
|
+ |
|
一元加 |
|
uplus |
|
减法 |
|
- |
|
一元- |
|
uminus |
|
Element-wise乘法 |
|
次 |
|
Element-wise权力 |
|
权力 |
./ |
对数组划分 |
|
rdivide |
|
离开数组划分 |
|
ldivide |
|
数组转置 |
|
转置 |
矩阵运算遵循线性代数的规则,不兼容多维数组。所需投入的大小和形状彼此之间的关系取决于操作。对于非标量输入,矩阵运算符计算的结果通常与数组运算符计算的结果不同。
例如,如果你使用矩阵右除法算子,/
,要对两个矩阵进行除法,两个矩阵的列数必须相同。但如果你用矩阵乘法运算符,*
,若两个矩阵相乘,则两个矩阵必须有一个公约数内部尺寸.也就是说,第一个输入中的列数必须等于第二个输入中的行数。矩阵乘法运算符用以下公式计算两个矩阵的乘积,
要明白这一点,你可以计算两个矩阵的乘积。
A = [1 3;2 4]
4 .答案:A
B = [3 0;1 5]
答案:B
A * B
Ans = 6 15 10 20
前一个矩阵积不等于下一个元素积。
a * B
Ans = 3 0 2 20
下表总结了MATLAB中的矩阵运算符。有关函数的详细信息,请单击最后一列中函数参考页面的链接。
操作符 |
目的 |
描述 |
参考页面 |
---|---|---|---|
|
矩阵乘法 |
|
mtimes |
|
矩阵左部 |
|
mldivide |
|
矩阵分裂 |
|
mrdivide |
|
矩阵幂 |
|
mpower |
|
复杂的共轭转置 |
|
ctranspose |