資源描述:
《周邏輯判斷及流程控制》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、2.4邏輯判斷及流程控制河西學(xué)院物電系2010/01/192.4.1關(guān)系運(yùn)算所謂關(guān)系運(yùn)算,是指兩個元素之間數(shù)值的比較,一共有六種可能,具體如下:<<=>>===~=小于小于等于大于大于等于等于不等于關(guān)系運(yùn)算的結(jié)果只有兩種可能,即0或1。0表示該關(guān)系式為“假”,即該關(guān)系式不成立;1表示該關(guān)系式為“真”,即該關(guān)系式成立。例如鍵入關(guān)系式a=2+2==4得a=12.4.1關(guān)系運(yùn)算注意,前面的單個等號表示賦值,后面的雙等號則表示關(guān)系運(yùn)算。式中2+2==4是關(guān)系運(yùn)算,它的優(yōu)先級高,算出的結(jié)果給a賦值,為了改善可讀
2、性,最好加上括號,寫成a=(2+2==4),表明是把括號內(nèi)的關(guān)系式的結(jié)果給a賦值,但表示關(guān)系運(yùn)算的相等符號仍必須用雙等號。2.4.1關(guān)系運(yùn)算MATLAB中的關(guān)系運(yùn)算都適用于矩陣,它是對矩陣的各個元素進(jìn)行元素群運(yùn)算,因此兩個相比較的矩陣必須有相同的階數(shù),輸出的結(jié)果也是同階矩陣。例如鍵入A=magic(6)得A=3516261924332721232531922227208283317101530534121416436291318112.4.1關(guān)系運(yùn)算要找到此矩陣中所有被3整除的元素,并在其位置上標(biāo)以1
3、,可以用表2-4中的rem函數(shù),rem(A,3)表示A除以3的余數(shù),余數(shù)為零就是整除。鍵入p=(rem(A,3)==0)得p=0010011001000100100010011001000100102.4.1關(guān)系運(yùn)算rem(A,3)表示A除以3的余數(shù),余數(shù)為零就是整除。2.4.1關(guān)系運(yùn)算關(guān)系運(yùn)算中還包括某些條件判斷,例如判斷矩陣元素中有無NaN、Inf值,矩陣是否為實(shí)數(shù)陣、稀疏陣或空陣等,它們不能直接用上述六種關(guān)系符簡單地表述,MATLAB把它們編成了專用的函數(shù)以備直接調(diào)用,見表2-5。2.4.1關(guān)系
4、運(yùn)算2.4.1關(guān)系運(yùn)算2.4.1關(guān)系運(yùn)算[j,k]=find(p~=0)給出p矩陣中不為零的元素的兩個下標(biāo),find(p~=0)或lp=find(p~=0)給出p矩陣中不為零的元素的順序號。矩陣元素是按列排序號的,先排第一列,再排第二列……,依次排完后,再確定它們的順序號。一個6×6的矩陣的36個元素的序號排列見表2-6。因此一個m×n陣中下標(biāo)為(j,k)的元素,其序號為l=(k-1)*n+j。2.4.1關(guān)系運(yùn)算[j,k]=find(p~=0)給出p矩陣中不為零的元素的兩個下標(biāo)2.4.1關(guān)系運(yùn)算鍵入l
5、p=find(p~=0)'得lp=2591213162023273031342.4.1關(guān)系運(yùn)算find(p~=0)或lp=find(p~=0)給出p矩陣中不為零的元素的順序號。矩陣元素是按列排序號的,先排第一列,再排第二列……,依次排完后,再確定它們的順序號。一個6×6的矩陣的36個元素的序號排列見表2-6。因此一個m×n陣中下標(biāo)為(j,k)的元素,其序號為l=(k-1)*n+j??梢钥闯鲞@些序號確實(shí)對應(yīng)于p中的l元素。矩陣的序號(index)與下標(biāo)(subscript)是一一對應(yīng)的。2.4.2邏輯運(yùn)
6、算邏輯量只能取0(假)和1(真)兩個值。邏輯量的基本運(yùn)算為“與(&)”、“或(
7、)”和“非(~)”三種。有時也包括“異或(xor)”,不過“異或”可以用三種基本運(yùn)算組合而成。兩個邏輯量經(jīng)這三種邏輯運(yùn)算后的輸出仍然是邏輯量,表示邏輯量的輸入/輸出關(guān)系的表稱為真值表,見表2-7。2.4.2邏輯運(yùn)算所有的算法語言中都有邏輯運(yùn)算。MATLAB的特點(diǎn)是使邏輯運(yùn)算用于元素群,得出同階的0-1矩陣。為了按列、按行判斷一群元素的邏輯值,它又增加了兩種對元素群的邏輯運(yùn)算函數(shù)all(全為真)和any(不全為假),見表2-
8、5?,F(xiàn)在來看邏輯式u=p
9、~p,這是把p和非p求“或”。得u=1111111111111111111111111111111111112.4.2邏輯運(yùn)算~p就是把p中的0元素?fù)Q成1,1元素?fù)Q成0。在p和非p對應(yīng)位置上的元素,必有一個是1,把p和~p“或”起來,一定是全1。2.4.2邏輯運(yùn)算all和any后的輸入變量應(yīng)為矩陣,它是按列運(yùn)算的。從它們的定義可知all(p)=000000(列中有一個元素為0,即得0)all(u)=111111(列中元素為全1,才得1)any(p)=111111(列中有一個元
10、素為1,即得1)2.4.2邏輯運(yùn)算2.4.3流程控制語句計算機(jī)程序通常都是從前到后逐條執(zhí)行的。但有時也會根據(jù)實(shí)際情況,中途改變執(zhí)行的次序,稱為流程控制。MATLAB設(shè)有四種流程控制的語言結(jié)構(gòu),即if語句、while語句、for語句和switch語句。1.if語句根據(jù)復(fù)雜程度,if語句有三種形式。(1)if(表達(dá)式)語句組A,end。其流程見圖2-1(a)。執(zhí)行到此語句時,計算機(jī)先檢驗(yàn)if后的邏輯表達(dá)式,如為1,就執(zhí)行語句組A;如為0,就跳過語句組A,直接