MATLAB®有两种不同类型的算术运算:数组运算和矩阵运算。您可以使用这些算术运算来执行数值计算,例如,将两个数字相加,将数组元素提高到给定的乘方,或将两个矩阵相乘。
矩阵运算遵循线性代数的规则。相反,数组操作逐个元素执行操作,并支持多维数组。金宝app句点字符(.
)将数组操作与矩阵操作区分开来。但是,由于矩阵和阵列操作与添加和减法相同,因此字符对.+
和.-
是不必要的。
数组操作按元素操作执行元素,对应的矢量,矩阵和多维数组的相应元素。如果操作数具有相同的大小,则第一个操作数中的每个元素都会在第二个操作数中使用同一位置中的元素匹配。如果操作数具有兼容的大小,则根据需要隐式扩展每个输入以匹配另一个。有关更多信息,请参阅兼容数组大小,用于基本操作.
作为一个简单的示例,可以将两个大小相同的向量相加。
A = [1 1 1]
A = 1 1 1
B = [1 2 3]
B = 1 2 3
A + B.
ans = 2 3 4
如果一个操作数是标量,另一个操作数不是,则Matlab隐式扩展标量与其他操作数相同。例如,您可以计算标量和矩阵的元素-Wise产品。
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]
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 4]
m = 2 4
是
矩阵维度必须同意。
下表提供了MATLAB中的算术阵列运算符摘要。有关函数的详细信息,请单击最后一列中函数参考页面的链接。
操作符 |
目的 |
描述 |
参考 |
---|---|---|---|
|
添加 |
|
加 |
|
一元加 |
|
uplus |
|
减法 |
|
- |
|
一元- |
|
uminus |
|
Element-wise乘法 |
|
时代 |
|
元素明智的力量 |
|
力量 |
./ |
对数组划分 |
|
rdivide |
|
离开数组划分 |
|
ldivide |
|
数组转置 |
|
翻倒 |
矩阵运算遵循线性代数的规则,不兼容多维数组。所需投入的大小和形状彼此之间的关系取决于操作。对于非标量输入,矩阵运算符计算的结果通常与数组运算符计算的结果不同。
例如,如果你使用矩阵右除法算子,/
,除以两个矩阵,矩阵必须具有相同数量的列。但如果您使用矩阵乘法运算符,*
,若两个矩阵相乘,则两个矩阵必须有一个公约数内部维度.也就是说,第一个输入中的列数必须等于第二个输入中的行数。矩阵乘法运算符用以下公式计算两个矩阵的乘积,
要明白这一点,你可以计算两个矩阵的乘积。
A = [1 3;2 4]
4 .答案:A
B = [3 0; 1 5]
B = 3 0 1 5
A * B.
ans = 6 15 10 20
前一个矩阵积不等于下一个元素积。
a * B
Ans = 3 0 2 20
下表总结了MATLAB中的矩阵运算符。有关函数的详细信息,请单击最后一列中函数参考页面的链接。
操作符 |
目的 |
描述 |
参考 |
---|---|---|---|
|
矩阵乘法 |
|
mtimes |
|
矩阵左部 |
|
mldivide |
|
矩阵分裂 |
|
mrdivide |
|
矩阵幂 |
|
mpower |
|
复杂的共轭翻转 |
|
ctranspose |