MATLAB 数组计算

数组与标量的计算

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