1. 程式人生 > >MATLAB 的運算符

MATLAB 的運算符

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 的運算符