官术网_书友最值得收藏!

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。

主站蜘蛛池模板: 长丰县| 宕昌县| 蓝田县| 沁水县| 鄂托克前旗| 郧西县| 枣强县| 莲花县| 江津市| 海盐县| 明溪县| 庆云县| 仪陇县| 太仆寺旗| 余姚市| 包头市| 定边县| 泽州县| 台南市| 合川市| 公主岭市| 密云县| 大足县| 五常市| 海原县| 攀枝花市| 双牌县| 图们市| 昭苏县| 蕲春县| 沈阳市| 三门峡市| 筠连县| 高雄县| 正阳县| 华蓥市| 西乡县| 正蓝旗| 普陀区| 绥德县| 泾川县|