MATLAB-1-6基本運算

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向量,分別求個位數字向量、十位數字向量、百位數字向量
%注意求某數立方數的寫法,用.*,而不是^,乘方的右側只能爲標量
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章