MATLAB算术运算
MATLAB 的运算都是针对矩阵而言的,既有矩阵意义下的运算,也有针对矩阵元素的运算。 就运算的性质而言,有算术运算、关系运算和逻辑运算。
一.基本算术运算
MATLAB 的基本算术运算有+(加)、 一 (减)、*(乘)、/(右除)、\(左除)、^(乘方)。 这些算术运算的运算规则不难理解,但必须注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。
1.矩阵加减运算
-
假定有两个矩阵A 和 B, 则可以由A+B 和 A-B 实现矩阵的加减运算。
-
运算规则是,若A 和 B 同型,则可以执行矩阵的加减运算,A 和 B 的相应元素相加减。如果A 和 B不同型,则MATLAB 将给出错误信息,提示用户两个矩阵的维数或大小不匹配。
-
一个标量也可以和矩阵进行加减运算,这时把标量和矩阵的每一个元素进行加减运算。
>> x=[2,-1,0;3,2,-4]; >> y=x-1 y = 1 -2 -1 2 1 -5
2.矩阵乘法
假定有两个矩阵A 和 B, 若A 为m×n矩 阵 ,B 为n×p矩阵,则C=A × B为 m×p矩阵,其各个元素为,(i=1,2,…,m;j=1,2,…,p)
>> A=[1,2,3;4,5,6];
>> B=[1,2;3,0;7,4];
>> C=A*B
C =
28 14
61 32
矩阵A 和 B进行乘法运算,要求A 的列数与B的行数相等,此时则称A 、B 矩阵是可乘的,或称A和B两矩阵维数和大小相容,如果两者的维数或大小不相容,则将给出错误信息,提示用户两个矩阵是不可乘的。
>> A=[10,20,30;40,50,60];
>> B=[1,3;4,7];
>> Y=A*B
错误使用 *
内部矩阵维度必须一致。
在 MATLAB 中,还可以进行矩阵和标量相乘运算,标量可以是乘数也可以是被乘数。矩阵和标量相乘是矩阵中的每个元素与此标量相乘。
3.矩阵除法 ★★
在MATLAB中,有两种矩阵除法运算:\和/,分别表示左除和右除。如果 A 矩阵是非奇异方阵,则A\B和 B/A 运算可以实现。
-
A\B 等效于A 的逆左乘B矩阵,也就是 inv(A)*B;
-
而 B/A 等效于A矩阵的逆右乘B 矩阵,也就是B*inv(A)。
-
对于含有标量的运算,两种除法运算的结果相同,如3/4和4\3有相同的值,都等于0.75。
-
对于矩阵来说,左除和右除表示两种不同的 除数矩阵和被除数矩阵的关系。对于矩阵运算,一般 A\B≠B/A。
>> A=[1,2,3;4,2,6;7,4,9] A = 1 2 3 4 2 6 7 4 9 >> B=[4,3,2;7,5,1;12,7,92] B = 4 3 2 7 5 1 12 7 92 >> C1=A\B C1 = 0.5000 -0.5000 44.5000 1.0000 0.0000 46.0000 0.5000 1.1667 -44.8333 >> C2=B/A C2 = -0.1667 -3.3333 2.5000 -0.8333 -7.6667 5.5000 12.8333 63.6667 -36.5000
4.矩阵的乘方★
一个矩阵的乘方运算可以表示成A^x, 要 求A 为方阵,x 为标量。
>> A=[1,2,3;4,5,6;7,8,0];
>> A^2
ans =
30 36 15
66 81 42
39 54 69
矩阵的开方运算是相当困难的,但用户可以利用计算机方便地求出一个矩阵的方根。
>> A=[1,2,3;4,5,6;7,8,0]
A =
1 2 3
4 5 6
7 8 0
>> A^0.1
ans =
0.9750 + 0.2452i 0.1254 - 0.0493i 0.0059 - 0.0604i
0.2227 - 0.0965i 1.1276 + 0.1539i 0.0678 - 0.1249i
0.0324 - 0.1423i 0.0811 - 0.1659i 1.1786 + 0.2500i
二、点运算 ★★★
在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。
点运算符有 .* 、 ./ 、 .\ 和 .^ 。
点运算是指它们的对应元素进行相关运算, 要求两矩阵同型。
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
>> B=[-1,0,1;1,-1,0;0,1,1]
B =
-1 0 1
1 -1 0
0 1 1
>> C=A.*B
C =
-1 0 3
4 -5 0
0 8 9
A.*B 表示A和B单个元素之间对应相乘,显然与A*B 的结果不同。
如果A 、B两矩阵同型,则A./B表示A矩阵除以B矩阵的对应元素。B.\A等价于A./B。
>> A=[1,2,3;4,5,6]
A =
1 2 3
4 5 6
>> B=[-2,1,3;-1,1,4]
B =
-2 1 3
-1 1 4
>> C1=A./B
C1 =
-0.5000 2.0000 1.0000
-4.0000 5.0000 1.5000
>> C2=B.\A
C2 =
-0.5000 2.0000 1.0000
-4.0000 5.0000 1.5000
显然,A./B和B.\A值相等。这与前面介绍的矩阵的左除、右除是不一样的。
若两个矩阵同型,则A.^B 表示两矩阵对应元素进行乘方运算
>> A=[1,2,3]
A =
1 2 3
>> B=[4,5,6]
B =
4 5 6
>> C=A.^B
C =
1 32 729
%指数可以是标量
A =
1 2 3
>> C=A.^2
C =
1 4 9
%底也可以是标量
>> A=[1,2,3]
A =
1 2 3
>> B=[4,5,6]
B =
4 5 6
>> C=2.^[A B]
C =
2 4 8 16 32 64
注意:点运算是MATLAB很有特色的一个运算符,在实际应用中起着很重要的作用,也是许多初学者容易弄混的一个问题
Matlab学习笔记内容来源于《MATLAB程序设计与应用 第三版》刘卫国主编