MATLAB邏輯運算與控制結構1_第1頁
MATLAB邏輯運算與控制結構1_第2頁
MATLAB邏輯運算與控制結構1_第3頁
MATLAB邏輯運算與控制結構1_第4頁
MATLAB邏輯運算與控制結構1_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第八章邏輯運算與控制結構本章學習目標:

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

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

邏輯運算符的功能在于使用其將多個表達式組合在一起,或是對關系式取反。

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

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

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

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

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

if表達式1

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

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

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

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

end在這種形式中,當運行到程序的另一個表達真時,則執(zhí)行與之相關的執(zhí)行語句,此時系統(tǒng)將不在檢驗其他的關系表達式,即系統(tǒng)將跳過其余的if-else-end結構,而且,最后的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分支語句,這就是新增加的一個功能,這可以使熟悉C語言或者其他高級語言的用戶更方便地使用MATLAB分支功能。它的使用格式如下:switch開關語句

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

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

….otherwise

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

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

try-catch是選擇結構中一種特殊結構,用于捕捉錯誤。當程序運行時遇到錯誤,程序會終止執(zhí)行,但如果將可能出錯的結構放在try語句中,那么程序會執(zhí)行catch語句而不會中斷程序執(zhí)行。使用的格式如下:

try

執(zhí)行語句1catch

執(zhí)行語句2end

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

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

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

end

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

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

end

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

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

溫馨提示

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

評論

0/150

提交評論