基本運算
1. 算術運算
1)基本算術運算
- 基本算術運算符:+(加),-(減),*(乘),/(右除),\(左除),^(乘方)
- MATLAB的算術運算在矩陣意義下進行,單個數據的算術運算只是矩陣運算的特例。
i. 加減運算
- 兩矩陣同型(矩陣的維數和大小相同),運算時矩陣相應元素相加減。
- 若矩陣不同型,則MATLAB將給出錯誤信息。
- 標量也可以和矩陣進行加減運算,即將標量和矩陣的每一個元素進行加減運算。
ii. 乘法運算
矩陣A列數與矩陣B行數相同,此時稱矩陣A,B是可乘的,或矩陣A,B的維數和大小相容。
iii. 除法運算
若A矩陣是非奇異方陣(可逆矩陣),則B/A等效於B*inv(A),A\B等效於inv(A)*B。
B右除以A:B/A
B左除以A:A\B
對矩陣來說,右除和左除表示兩種不同的除數矩陣和被除數矩陣關係。
左除和右除運算結果不同。
>> A=[1,2,3;4,2,6;7,4,9];
>> B=[4,3,2;7,5,1;12,7,92];
>> C1=B/A
C1 =
-0.1667 -3.3333 2.5000
-0.8333 -7.6667 5.5000
12.8333 63.6667 -36.5000
%爲什麼會出現負值,不是矩陣對應位置元素相除嗎?
>> C2=A\B
C2 =
0.5000 -0.5000 44.5000
1.0000 0.0000 46.0000
0.5000 1.1667 -44.8333
%對於含有標量的運算,兩種除法運算的結果相同
>> 3/4
ans =
0.7500
>> 3\4
ans =
1.3333
>> 4\3
ans =
0.7500
>> a=[10.5,25]
a =
10.5000 25.0000
>> a/5
ans =
2.1000 5.0000
>> 5\a
ans =
2.1000 5.0000
>> a\5
ans =
0
0.2000
%左除相當於:A\B,B左除以A
iv. 乘方運算
語法: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
2)點運算
點運算符:.+,.-,.*,./,.\,.^
兩矩陣進行點運算是指其對應元素進行相關運算,要求兩矩陣同型。
>> A=[1,2,3;4,5,6;7,8,9];
>> B=[-1,0,1;1,-1,0;0,1,1];
>> C=A.*B
C =
-1 0 3
4 -5 0
0 8 9
%兩矩陣對應元素做乘法運算
>> D=A*B
D =
1 1 4
1 1 10
1 1 16
%矩陣意義下的乘法運算
>> A./B
ans =
-1 Inf 3
4 -5 Inf
Inf 8 9
>> A.\B
ans =
-1.0000 0 0.3333
0.2500 -0.2000 0
0 0.1250 0.1111
%點左除和點右除運算結果不同
>> x=0.1:0.3:1;
>> y=sin(x).*cos(x)
y =
0.0993 0.3587 0.4927 0.4546
%求y的表達式中,必須是點乘運算。因爲x是一個向量,sin(x)和cos(x)是和x同長度的向量。如果用乘法運算,會因兩個向量相乘不相容而出錯。
2. 關係運算符
六種關係運算符:<,<=,>,>=,==,~=(不等於)
1)比較標量
直接比較兩數的大小。若關係成立,關係表達式結果爲1,否則爲0。
>> 3>5
ans =
logical
0
>> x=5
x =
5
>> x==6
ans =
logical
0
%一個等號爲賦值,兩個等號表示關係運算
2)比較同型矩陣
對兩矩陣相同位置的元素按標量關係運算規則逐個進行,最終的關係運算結果是一個與原矩陣同型的矩陣,元素由0或1組成。
3)比較標量&矩陣
把標量與矩陣的每一個元素按標量關係運算規則逐個比較,最終的關係運算結果是一個與原矩陣同型的矩陣,它的元素由0或1組成。
%判斷A的元素是否爲偶數
>> A=[1,2,3;4,5,6;7,8,9];
>> P=rem(A,2)==0
P =
3×3 logical 數組
0 1 0
1 0 1
0 1 0
%==右邊0被擴展爲與A同型的零矩陣
3. 邏輯運算
邏輯運算符:&(與),|(或),~(非)
1)標量進行邏輯運算
a&b,a、b全非零時,運算結果爲1,否則爲0。
a|b,a、b中只要有一個爲非零,運算結果爲1。
~a,a爲零時,運算結果爲1;a爲非零時,運算結果爲0。
2)兩同型矩陣進行邏輯運算
對矩陣相同位置上的元素按標量規則逐個進行運算,運算結果是一個與原矩陣同型的矩陣,其元素由0或1組成。
3)標量&矩陣進行邏輯運算
在標量與矩陣的每一個元素間按標量規則逐個計算,運算結果是一個與原矩陣同型的矩陣,其元素由0或1組成。
4. 運算符優先級
算術運算>關係運算>邏輯運算
算術運算符優先級最高,邏輯運算最低。但邏輯非運算是單目運算,其優先級比雙目運算高。
>> ~9==1
ans =
logical
0
%先運算~9,再比較0==1
5. 求全部水仙花數
水仙花數指各位數字的立方之和等於該數本身的三位正整數。
>> x=100:1:999;
%生成x向量
>> a=rem(x,10);
>> b=rem(fix(x/10),10);
>> c=fix(x/100);
%因爲x是向量,所以a,b,c是與x同長度的向量
>> y=find(x==a.*a.*a+b.*b.*b+c.*c.*c)
%在向量x中,找到水仙花數在x中的序號,賦給向量y
%find( )找的只是序號
y =
54 271 272 308
>> z=x(y)
%輸出全部水仙花數
z =
153 370 371 407
%生成x向量,分別求個位數字向量、十位數字向量、百位數字向量
%注意求某數立方數的寫法,用.*,而不是^,乘方的右側只能爲標量