1、第十四章:MATLAB 的運算元,簡介,運算元分為五大類:1.數學運算元2.關係運算元3.邏輯運算元4.位元運算元5.及集合運算元,14-1數學運算元,數學運算元之優先順序:1.轉置(.),冪次(.).共軛轉置(),矩陣冪次()2.正號(+),負號(-)3.乘法(.*),元素右除(./),元素左除(.),矩陣乘法(*),矩陣右除(/),矩陣左除()4.加法(+),減法(-)5.冒號(:)(例如: x = 1:2:5 等)同一類的運算元均具有相同的優先度(Priority),因此在計算上,是由左至右依次完成,純量展開,MATLAB 的數學運算元可支援純量展開(Scalar Expansion)
2、將一純量展開成適當維度的矩陣後,再進行數學運算 範例14-1:scalarExpansion01.mb = 2 3 4 5c = 1.0000 0.5000 0.3333 0.2500,14-2關係運算元,MATLAB 的關係運算元(Relational Operators),關係運算元,MATLAB 的關係運算元總是以矩陣內元素對元素的方式作運算 c=ab若 a(i, j) b(i, j),則 c(i, j) 的值為 1(true),否則即為 0(false) MATLAB 的關係運算元亦支援純量展開範例14-3 : greaterThan02.mc = 0 0 1 1,關係運算元的用法,可
3、以將關係運算元傳回的 0-1 矩陣,來進行矩陣的索引(Indexing) 求出在 a 矩陣中,滿足 a(i, j) = b(i, j) 的元素 範例14-4 : findElement01.md = 10 30 40,元素索引,find指令 : 可傳回非零元素索引,顯示一維索引或下標 範例14-5: find01.mindex = 3 5 6 x(index)則是非零元素所形成的向量,2維索引,要找出滿足某條件的二維索引或下標範例14-6:find02.m idx1 = 1 3 1 2idx2 = 1 2 3 3 idx1 和 idx2 分別是符合條件之矩陣元素的列索引(Row Index)及
4、行索引(Column Index),範例,如何找出介於7和11的元素?ans = 10 8 9,14-3 邏輯運算元,MATLAB 的邏輯運算元(Logical Operators)數值為1則為True, 0 則為False 相關的指令還有 all 及 any:當所有向量元素為真(非零),則 all 指令傳回 1,否則為 0。當任一向量元素為真(非零),則 any 指令傳回 1,否則為 0。,相關指令,範例14-9: logic02.mresult1 = 0retult2 = 1result3 = 0all 及 any 指令也可以接受矩陣輸入,此時他們會對每一個行向量進行運算,14-4位元運算
5、元,MATLAB 的位元運算元(Bitwise Operators)可對非負整數進行位元對位元的邏輯運算,位元運算元範例,數字 10 的二進位表示法是 1010,數字 4 的二進位表示法是 0100,因此數字 10 和數字 4 的 bitor 應傳回 1110 的十進制數值,即數字 14 bitor(10,4) ans = 14 數字 18 的二進位表示法向左平移一個單位,其效果相當乘 2 bitshift(18, 1) ans = 36,14-5集合運算元,MATLAB 的集合運算元(Set Operators)可將向量視為集合,來進行各種集合運算,範例,範例14-11 : set01.munion_result = 1 2 3 4 5 6 9intersect_result = 1 5setdiff_result = 2 3 4 6setxor_result = 2 3 4 6 9setuniq_result = 1 5 9ismember_result = 1,