MATLAB®有两种不同类型的算术运算:数组运算和矩阵运算。您可以使用这些算术运算来执行数值计算,例如,将两个数字相加,将数组的元素提升到给定的幂,或者将两个矩阵相乘。
矩阵运算遵循线性代数的规则。相反,数组操作逐个元素执行操作,并支持多维数组。万博1manbetx句号字符(。
)将数组操作与矩阵操作区分开来。但是,由于加法和减法的矩阵和数组操作是相同的,所以字符对。+
和。-
是不必要的。
数组操作对向量、矩阵和多维数组的对应元素逐个进行操作。如果操作数大小相同,则第一个操作数中的每个元素将与第二个操作数中相同位置的元素匹配。如果操作数的大小兼容,则每个输入都将根据需要隐式展开,以匹配另一个的大小。有关更多信息,请参见用于基本操作的兼容数组大小。
作为一个简单的例子,你可以将两个相同大小的向量相加。
A = [11 11]
A = 11 11
B = [1 2 3]
B = 1 2 3
A + B
ans = 2 3 4
如果一个操作数是标量而另一个不是,那么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 = [11 11 1;2 2 2;3 3 3]
A = 11 11 2 2 2 3 3 3
m = [2 4 6]
m = 2 4 6
一个米
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]
m = 24
一个米
矩阵维数必须一致。
下表提供了MATLAB中的算术数组运算符的摘要。有关特定于函数的信息,请单击最后一列中的函数参考页面的链接。
操作符 |
目的 |
描述 |
参考页面 |
---|---|---|---|
|
除了 |
|
+ |
|
一元加 |
|
uplus |
|
减法 |
|
- |
|
一元- |
|
uminus |
|
Element-wise乘法 |
|
次 |
|
Element-wise权力 |
|
权力 |
。/ |
对数组划分 |
|
rdivide |
|
离开数组划分 |
|
ldivide |
|
数组转置 |
|
转置 |
矩阵运算遵循线性代数的规则,与多维数组不兼容。所需的大小和形状的输入相对取决于操作。对于非标量输入,矩阵算子通常计算的结果与对应的数组算子不同。
例如,如果你使用矩阵的右除法运算符,/
,为了划分两个矩阵,两个矩阵必须有相同的列数。但是如果你用矩阵乘法运算符,*
,要使两个矩阵相乘,那么两个矩阵必须有一个公约数内部尺寸。也就是说,第一个输入中的列数必须等于第二个输入中的行数。矩阵乘法运算符用公式计算两个矩阵的乘积,
为了理解这个,你可以计算两个矩阵的乘积。
A = [1 3;2 4]
A = 1 3 2 4
B = [3 0;1 5]
B = 30 15
A * B
ans = 6 15 10 20
前面的矩阵积不等于下面的元素积。
a * B
ans = 3 0 2 20
下表提供了MATLAB中的矩阵算术运算符的摘要。有关特定于函数的信息,请单击最后一列中的函数参考页面的链接。
操作符 |
目的 |
描述 |
参考页面 |
---|---|---|---|
|
矩阵乘法 |
|
mtimes |
|
矩阵左部 |
|
mldivide |
|
矩阵分裂 |
|
mrdivide |
|
矩阵幂 |
|
mpower |
|
复杂的共轭转置 |
|
ctranspose |