- MATLAB/Simulink權威指南:開發環境、程序設計、系統仿真與案例實戰
- 徐國保 張冰 石麗梅 吳凡
- 1424字
- 2019-12-20 20:33:23
1.6 MATLAB運算符
MATLAB語言包括三種常見運算符:算術運算符、關系運算符和邏輯運算符。
1.6.1 算術運算符
MATLAB語言有許多算術運算符,如表1-7所示。
表1-7 算術運算符

說明:
(1)加、減、乘和乘方運算規則與傳統的數學定義一樣,用法也相同。
(2)點運算(點乘、點乘方、點左除和點右除)是指對應元素點對點運算,要求參與運算矩陣的維度要一樣。需要指出點左除與點右除不一樣,A./B是指A的對應元素除以B的對應元素,A.\B是指B的對應元素除以A的對應元素。
(3)MATLAB除法相對復雜些,對于單個數值運算,右除和傳統除法一樣,即a/b=a÷b;而左除與傳統除法相反,即a\b=b÷a。對于矩陣運算,左除A\B相當于矩陣方程組AX=B的解,即X=A\B=inv(A)?B;右除B/A相當于矩陣方程組XA=B的解,即X=B/A=B?inv(A)。
【例1-2】 矩陣A=[1 2;3 4],B=[1 1;0 1],求:A\B,inv(A)?B,B/A,B?inv(A)。

顯然,A\B=inv(A)?B;B/A=B?inv(A)。
MATLAB提供了許多常用數學函數,若函數自變量是一個矩陣,運算規則是將函數逐項作用于矩陣的元素上,得到的結果是一個與自變量同維數的矩陣。表1-8列出了常用的數學函數。
說明:
(1)abs函數可以求實數的絕對值,復數的模和字符串的ASCII值,例如,abs(﹣2.3)=2.3;abs(3+4i)=5;abs('a')=97。
(2)MATLAB語言有4個取整的函數:round、fix、floor和ceil,它們之間是有區別的。例如,round(1.49)=1,fix(1.49)=1,floor(1.49)=1,ceil(1.49)=2;round(﹣1.51)=﹣2,fix(﹣1.51)=﹣1,floor(﹣1.51)=﹣2,ceil(﹣1.51)=﹣1。
(3)MATLAB語言中以10為底的對數函數是log10(x),而不是lg(x);自然指數函數是exp(x),而不是e(x)。
(4)符號函數sign(x)的值有三種:當x=0時,sign(x)=0;當x>0時,sign(x)=1;當x<0時,sign(x)=﹣1。
表1-8 常用的數學函數

(5)MATLAB語言的三角函數都是對弧度進行操作,使用三角函數時,需要將度數變換為弧度,變換公式為弧度=2?pi?(度/360)。例如,數學上的sin(60°),MATLAB語言應該寫成sin(2?pi?60/360)。
1.6.2 關系運算符
MATLAB語言有大于、大于或等于、小于、小于或等于、等于和不等于6種常見的關系運算符,如表1-9所示。
表1-9 關系運算符

關系運算符主要用于數與數、數與矩陣元素、矩陣與矩陣之間的元素進行比較,返回兩者之間的關系的矩陣(由數0和1組成),0和1分別表示關系不滿足和滿足。矩陣與矩陣之間進行比較時,兩個矩陣的維度要一樣。
【例1-3】 已知a=1,b=2,C=[1,2;3 4],D=[4 3;2 1],求關系運算a==b,a~=b,a==C和C<D。

1.6.3 邏輯運算符
MATLAB語言提供4種常見的邏輯運算符:&(與)、|(或)、~(非)和xor(異或)。
運算規則:
(1)在邏輯運算中,所有非零元素均被認為真,用1表示;零元素為假,用0表示。
(2)設參與邏輯運算的兩個標量為a和b,那么邏輯運算規則如表1-10所示。
表1-10 邏輯運算規則

(3)如果兩個同維矩陣參與邏輯運算,矩陣對應元素按標量規則進行邏輯運算,得到同維的由1或者0構成的矩陣。
(4)如果一個標量和一個矩陣參與邏輯運算,標量和矩陣的每個元素按標量規則進行邏輯運算,得到同維的由1或者0構成的矩陣。
例如:

1.6.4 優先級
在MATLAB算術、關系和邏輯三種運算符中,算術運算符優先級最高,關系運算符次之,邏輯運算符優先級最低。即程序先執行算術運算,然后執行關系運算,最后執行邏輯運算。在邏輯“與”“或”“非”三種運算符中,“非”的優先級最高,“與”和“或”的優先級相同,即從左往右執行。實際應用中,可以通過括號來調整運算的順序。
例如:

其中,MATLAB先執行算術運算1+2=3,然后執行關系運算1>2為0,以及2<3為1,最后執行邏輯運算0|1=1。