MATLAB 的運算符
阿新 • • 發佈:2017-05-09
logic 相同 amp enter rand 0.12 table .cn border
在MATLAB中,提供了豐富的運算符,運算主要包括算數運算、關系運算和邏輯運算。
一、算數運算符
分為標量和數組運算和矩陣運算。需要註意:對於a/b,是a除以b,對於a\b,是b除以a。在MATLAB中,采用符號^表示乘方運算,采用 log2()計算對數。
例子:
>> a=20; >> b=15; >> c1=a*b %乘法 c1 = 300 ------------------------------------------ >> c1=a/b %右除法 c1 = 1.3333 ------------------------------------------ >> c3=a\b %左除法 c3= 0.7500 ------------------------------------------ >> c4=2^20 %乘方 c4 = 1048576 ------------------------------------------ >> c5=log2(c4) %對數 c5 = 20
二、關系運算符(返回值是邏輯型logical)
例子:
>> a=randn(3,5) %randn()產生由隨機數組成的矩陣 a = -0.2050 1.4090 -1.2075 0.4889 -0.3034-0.1241 1.4172 0.7172 1.0347 0.2939 1.4897 0.6715 1.6302 0.7269 -0.7873 ------------------------------------------ >> b1=a>=0.3 %大於等於 b1 = 3×5 logical 數組 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0
------------------------------------------ >> b2=lt(a,0.7) %小於 b2 = 3×5 logical 數組 1 0 1 1 1 1 0 0 0 1 0 1 0 0 1 ------------------------------------------ >> b2=b1~=b2 %不等於 b2 = 3×5 logical 數組 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1
另,對於浮點數的比較,因為浮點數在存儲時存在相對誤差。在程序中,最好不要直接比較兩個浮點數是否相等,而是通過兩個浮點數的差是否小於某個特別小的數來判斷是否相等。
例子:比較兩個浮點數是否相等。
>> format long; %改變數據顯示的位數 >> a=3.1415926 a = 3.141592600000000 ---------------------------------------------------------------- >> c1=a==pi %直接進行比較,采用關系運算符“==”,則兩個浮點數不相等 c1 = logical 0 ---------------------------------------------------------------- >> c2=abs(a-pi)<1e-5 %比較差值是否小於 1e-5,是則相等 c2 = logical 1
三、邏輯運算符
MATLAB的邏輯運算分為三類,分別是:逐個元素的邏輯運算、快速邏輯運算、逐位邏輯運算。
(一)逐個元素的邏輯運算
運算符 | 函數 | 說明 |
& | and | 邏輯與(單目) |
| | or | 邏輯或(單目) |
~ | not | 邏輯非(雙目) |
— | xor | 邏輯異或 |
(二)快速邏輯運算
運算符 | 說明 |
&& | 快速邏輯與,當第一個操作數為假時,直接返回假,否則與 & 相同 |
|| | 快速邏輯或,當第一個操作數為真時,直接返回真,否則與 | 相同 |
(三)逐位邏輯運算
函數 | 函數說明 |
bitand(a,b) | 逐位邏輯與 |
bitor(a,b) | 逐位邏輯或 |
bitcmp(a,b) | 逐位邏輯非 |
bitxor(a,b) | 逐位邏輯異或 |
四、運算符的優先級
picture via :blog.sina.com.cn/xywatersky
MATLAB 的運算符