MATLAB邏輯運(yùn)算與控制結(jié)構(gòu)1_第1頁
MATLAB邏輯運(yùn)算與控制結(jié)構(gòu)1_第2頁
MATLAB邏輯運(yùn)算與控制結(jié)構(gòu)1_第3頁
MATLAB邏輯運(yùn)算與控制結(jié)構(gòu)1_第4頁
MATLAB邏輯運(yùn)算與控制結(jié)構(gòu)1_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第八章邏輯運(yùn)算與控制結(jié)構(gòu)本章學(xué)習(xí)目標(biāo):

1)掌握matlab的關(guān)系和邏輯運(yùn)算符2)了解find運(yùn)算3)合理使用if/else4)掌握switch/case結(jié)構(gòu)5)正確使用for循環(huán)和while循環(huán)8.1關(guān)系和邏輯運(yùn)算符(1)關(guān)系運(yùn)算符除了傳統(tǒng)的數(shù)值運(yùn)算,MATLAB還支持關(guān)系和邏輯運(yùn)算。作為所有的關(guān)系和邏輯表達(dá)式的輸入,MATLAB把任何非零數(shù)值當(dāng)作真,而只把零當(dāng)作假。所有關(guān)系和邏輯表達(dá)式的輸出,當(dāng)結(jié)果為真時(shí),輸出為1;當(dāng)結(jié)果為假時(shí),輸出為0。關(guān)系運(yùn)算符該運(yùn)算符功能關(guān)系運(yùn)算符該運(yùn)算符功能<小于>=大于等于>大于==等于<=小于等于~=約等于

注意:1)符號(hào)“==”和“=”的區(qū)別:前者是用來比較兩個(gè)變量,相等的時(shí)候返回1,不等的時(shí)候返回0;后者是用來將運(yùn)算的結(jié)果賦給一個(gè)變量。2)sin(pi)~=0該值結(jié)構(gòu)為真,即為1;比較abs(sin(pi)-0)<1.0e-14;●3<4●3<=4●3>4●3==4●'A'<'B'(2)邏輯運(yùn)算符

邏輯運(yùn)算符的功能在于使用其將多個(gè)表達(dá)式組合在一起,或是對(duì)關(guān)系式取反。

異或即排它(真假不同才是真)運(yùn)算優(yōu)先級(jí):算數(shù)運(yùn)算,關(guān)系運(yùn)算,非,與,或邏輯運(yùn)算符功能&與~非?或Xor異或8.3Find結(jié)構(gòu)函數(shù)find是找出向量或矩陣中非0元素的位置標(biāo)志●I=find(x):返回向量或矩陣x中的所有非0元素的位置標(biāo)識(shí)組成的向量,如果沒有非0元素,則返回空值?!瘛綢,J】=find(x);返回矩陣x的非0元素行和列的標(biāo)識(shí)。其中I是行標(biāo)識(shí),J是列標(biāo)識(shí)?!瘛綢,J,V】=find(x):返回矩陣x中的非0元素行和列的標(biāo)識(shí)。v是非0元素?cái)?shù)值。8.4選擇語句在編寫程序時(shí),往往需要根據(jù)一定的條件,進(jìn)行一定的選擇來執(zhí)行不同的語句,此時(shí),需要使用分支語句來控制程序的進(jìn)程,在MATLAB中,使用if-else-end來實(shí)現(xiàn)這種控制。其中有三種使用形式:只有一種選擇時(shí)的情況此時(shí)的程序結(jié)構(gòu)如下:

if表達(dá)式執(zhí)行語句

end這是結(jié)構(gòu)最簡(jiǎn)單的一個(gè)應(yīng)用形式,它只有一個(gè)判斷語句,當(dāng)表達(dá)式為真時(shí),就執(zhí)行if和end之間的執(zhí)行語句,否則不予以執(zhí)行。例:ifG<50disp('Gisasmallvalueequalto:')disp(G);end有兩種選擇時(shí)的情況假如有兩個(gè)選擇:

if表達(dá)式執(zhí)行語句1else

執(zhí)行語句2end此時(shí)如果表達(dá)式為真,則系統(tǒng)將運(yùn)行執(zhí)行語句1;如果表達(dá)式是假,則系統(tǒng)將運(yùn)行執(zhí)行語句2。有三種或三種以上選擇的情況當(dāng)有三種或更多的選擇時(shí),選用如下的結(jié)構(gòu):

if表達(dá)式1

表達(dá)式1為真時(shí)的執(zhí)行語句1elseif表達(dá)式2

表達(dá)式2為真時(shí)的執(zhí)行語句2elseif表達(dá)式3

表達(dá)式3為真時(shí)的執(zhí)行語句3else

所有的表達(dá)式為假時(shí)的執(zhí)行語句4

end在這種形式中,當(dāng)運(yùn)行到程序的另一個(gè)表達(dá)真時(shí),則執(zhí)行與之相關(guān)的執(zhí)行語句,此時(shí)系統(tǒng)將不在檢驗(yàn)其他的關(guān)系表達(dá)式,即系統(tǒng)將跳過其余的if-else-end結(jié)構(gòu),而且,最后的else命令可有可無。

if(b^2-4*a*c)<0disp('thisequationhastwocomplexroots.');if(b^2-4*a*c)==0disp('thisequationhastwoidenticalrealroots.');elsedisp('thisequationhastwodistinctrealroots.');end分支語句

在MATLAB語言中,除了上邊介紹的if-else-end分支語句外,還提供了另外一種分支語句形式,那就是switch-case-otherwise-end分支語句,這就是新增加的一個(gè)功能,這可以使熟悉C語言或者其他高級(jí)語言的用戶更方便地使用MATLAB分支功能。它的使用格式如下:switch開關(guān)語句

case條件語句執(zhí)行語句,…,執(zhí)行語句

case{條件語句1,條件語句2,條件語句3,…}執(zhí)行語句,…,執(zhí)行語句

….otherwise

執(zhí)行語句,…,執(zhí)行語句end

在這個(gè)結(jié)構(gòu)中,當(dāng)某個(gè)條件語句的內(nèi)容與開關(guān)語句的內(nèi)容相匹配時(shí),系統(tǒng)將執(zhí)行其后的語句,如果都不相符時(shí),系統(tǒng)將執(zhí)行otherwise的語句。注意:Switch指令后面的表達(dá)式是一個(gè)標(biāo)量或者是個(gè)字符串;Case指令后面的不僅僅是標(biāo)量或者字符串還可以為一個(gè)單元數(shù)組。

try-catch是選擇結(jié)構(gòu)中一種特殊結(jié)構(gòu),用于捕捉錯(cuò)誤。當(dāng)程序運(yùn)行時(shí)遇到錯(cuò)誤,程序會(huì)終止執(zhí)行,但如果將可能出錯(cuò)的結(jié)構(gòu)放在try語句中,那么程序會(huì)執(zhí)行catch語句而不會(huì)中斷程序執(zhí)行。使用的格式如下:

try

執(zhí)行語句1catch

執(zhí)行語句2end

一般來說,執(zhí)行語句1中的所有命令都要執(zhí)行,如果執(zhí)行語句1中沒有MATLAB7.0錯(cuò)誤出現(xiàn),那么,在執(zhí)行語句1后,出現(xiàn)控制就直接跳動(dòng)end語句;但是如果在運(yùn)行執(zhí)行語句1的過程中,出現(xiàn)了MATLAB錯(cuò)誤,那么程序控制就立刻轉(zhuǎn)移到catch語句,然后執(zhí)行語句2。在catch模塊,函數(shù)lasterr包含了在try模塊中出現(xiàn)的錯(cuò)誤生成的字符串。這樣,catch模塊中的執(zhí)行語句2就可以獲取這個(gè)錯(cuò)誤字符串,然后采取相應(yīng)的動(dòng)作。

try-catch模塊也可以嵌套使用。8.4循環(huán)語句for循環(huán)1)for循環(huán)的最大特點(diǎn)是:它的循環(huán)判斷條件通常就是對(duì)循環(huán)次數(shù)的判斷,也就是說,循環(huán)語句的循環(huán)次數(shù)是預(yù)先設(shè)定好的。它的使用格式如下:

fori=表達(dá)式執(zhí)行語句,…,執(zhí)行語句

end

其中,它的表達(dá)式是一個(gè)向量,其形式可以是m:s:n;其中m、n和s可以為整數(shù)、小數(shù)或是負(fù)數(shù)。但是當(dāng)n>m時(shí),s必須有大于0的數(shù),而當(dāng)n<m時(shí),s必須為小于0的數(shù),因此只有這樣,表達(dá)式才能組成一個(gè)向量。表達(dá)式也可以是m:n這樣的形式,此時(shí),s的值默認(rèn)為1,n必須大于m。見例子:對(duì)n=1,2,3····10;求x(n)=sin(n*pi/10)程序:for=1:10x(n)=sin(n*pi/10);endx2)for循環(huán)的另一個(gè)特點(diǎn)就是嵌套使用,它可以多次嵌套for循環(huán)或是和其他的結(jié)構(gòu)形式嵌套,這樣可以利用它來實(shí)現(xiàn)更為復(fù)雜的功能。while循環(huán)語句與for循環(huán)不同,while循環(huán)的判斷控制可以是邏輯判斷語句的,因此它的循環(huán)次數(shù)可以是一個(gè)不定數(shù)。這樣就賦予了它比for循環(huán)更廣泛的用途。它的使用格式如下:

while表達(dá)式執(zhí)行語句

end

在這個(gè)循環(huán)中,只要表達(dá)式的值不為false,程序就會(huì)一直運(yùn)行下去,必須注意的是,當(dāng)程序設(shè)計(jì)出現(xiàn)了問比如表達(dá)式的值總是false時(shí),程序容易陷入死循環(huán)因此在使用while時(shí),一定要在執(zhí)行語句中設(shè)置使表達(dá)式的值為false的情況。終止命令break和return

首先介紹break命令。Break命令主要用在循環(huán)控制中,如for循環(huán)和while循環(huán),一般通過if語句來使用break語句。當(dāng)if語句滿足一定的條件時(shí),break語句將被調(diào)用,系統(tǒng)將在循環(huán)尚為結(jié)束時(shí),跳出當(dāng)前循環(huán)。在多層嵌套循環(huán)中,break只能跳出包含它的最內(nèi)層的循環(huán)。注意:break語句只應(yīng)用于循環(huán)語句中,當(dāng)在循環(huán)語句以外進(jìn)行終止操作時(shí),可以使用return命令后,進(jìn)程將返回調(diào)用函數(shù)或是鍵盤,同時(shí),使用return命令可以終止keyboard模式。通常情況下,程序在end處結(jié)束,而return命令可以提前結(jié)束程序。見例子:繼續(xù)命令continuecontinue

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論