数组与标量的计算
MATLAB
的设计让我们能够自然地处理数组。
例如,我们可以将一个标量值与数组中的所有元素相加。
1 2 3 4 5 6 7 8 9 10 11
| >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
>> A + 1 ans = 2 3 4 5 6 7 8 9 10
|
数组与数组的计算
MATLAB
也能够处理数组之间的计算。
例如,我们可以将两个相同大小的数组相加。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
>> B = [1 2 3; 4 5 6; 7 8 9] B = 1 2 3 4 5 6 7 8 9
>> A + B ans = 2 4 6 8 10 12 14 16 18
|
除此之外,MATLAB
还能够进行乘除等各种运算,写法同加法类似。
基本统计函数计算
MATLAB
也提供了一些基本的统计函数,例如求和、求平均值、求最大值、求最小值等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
>> sum(A) ans = 12 15 18
>> mean(A) ans = 4 5 6
>> max(A) ans = 7 8 9
>> min(A) ans = 1 2 3
|
数学函数计算
MATLAB
也提供了一些数学函数,例如求平方根、求指数、求对数等。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
>> sqrt(A) ans = 1.0000 1.4142 1.7321 2.0000 2.2361 2.4495 2.6458 2.8284 3.0000
>> exp(A) ans = 2.7183e+00 7.3891e+00 2.0086e+01 5.4598e+01 1.4841e+02 4.0343e+02 1.0966e+03 2.9800e+03 8.1031e+03
>> log(A) ans = 0 0.6931 1.0986 1.3863 1.6094 1.7918 1.9459 2.0794 2.1972
|
不同大小数组之间的计算
MATLAB
也能够处理不同大小的数组之间的计算。
例如,我们可以将不同大小的数组相乘。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| >> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
>> B = [1 2 3] B = 1 2 3
>> A * B' ans = 14 32 50
|
上述运算是经典的矩阵乘法,要求第一个矩阵的列数与第二个矩阵的行数相等,MATLAB
也提供了 .*
运算符,用于对应元素相乘。
我们还可以对其他具有兼容大小的数组执行运算。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| >> A = [1 2;3 4;5 6; 7 8] A = 1 2 3 4 5 6 7 8
>> B = [1;2;3;4] B = 1 2 3 4
>> A .* B ans = 1 2 6 8 15 18 28 32
|
更多内容请参考 MATLAB 基本运算的兼容数组大小。
算术运算符
MATLAB
支持的算术运算符如下表所示:
符号 | 说明 | 函数名 |
---|
+ | 加法 | plus |
+ | 取正 | uplus |
- | 减法 | minus |
- | 取反 | uminus |
* | 矩阵乘法 | mtimes |
.* | 对应元素相乘 | times |
/ | 矩阵右除 | mrdivide |
./ | 对应元素右除 | rdivide |
\ | 矩阵左除 | mldivide |
.\ | 对应元素左除 | ldivide |
^ | 矩阵幂 | mpower |
.^ | 对应元素求幂 | power |
.' | 转置 | transpose |
' | 共轭转置 | ctranspose |