官术网_书友最值得收藏!

1.3 MATLAB程序設計

M文件程序控制語句通常包括順序語句、循環語句、選擇語句和交互語句等.雖然MATLAB不像C、Fortran等高級語言那樣具有豐富的控制語句,但是MATLAB自身強大的函數功能彌補了這種不足,使用戶在編寫M文件時并不感覺困難.

1.3.1 順序語句

順序語句是最簡單的控制語句,就是按照順序從頭至尾地執行程序中的各條語句.順序語句一般不包含其他子語句或控制語句.

例1-18 一個僅由順序語句構成的M文件.

MATLAB命令為:

運行結果為:

1.3.2 循環語句

在實際過程中經常會遇到一些需要有規律地重復進行運算的問題,此時,就需要重復執行某些語句,這樣就需要用循環語句進行控制.在循環語句中,被重復執行的語句稱為循環體,每個循環語句通常都包含循環條件,以判斷循環是否繼續進行下去.MATLAB提供了兩種循環方式:for循環和while循環.

1.for循環語句

for循環語句使用起來較為靈活,一般用于循環次數已經確定的情況,它的循環判斷條件通常是對循環次數的判斷.for語句的調用格式為:

其中,表達式1為循環初值,表達式2為循環步長,表達式3為循環終值.如果省略表達式2,則默認步長為1.對于正的步長,當i的值大于表達式3的值時,將結束循環;對于負的步長,當i的值小于表達式3的值時,將結束循環.for語句允許嵌套使用,一個for關鍵字必須和一個end關鍵字相匹配.

例1-19 用for循環語句生成1~n的乘法表.

MATLAB命令為:

運行結果為:

在for循環語句中通常需要注意以下事項:

1)for語句一定要有end關鍵字作為結束標志,否則以下的語句將被認為包含在for循環體內.

2)循環體中每個語句結尾處一般用分號“;”結束,以避免中間運算過程的輸出.如果需要查看中間結果,則可以去掉相應語句后面的分號.

3)如果循環語句為多重嵌套,則最好將語句寫成階梯狀,這樣有助于查看各層的嵌套情況.

4)不能在for循環體內強制對循環變量進行賦值來終止循環的運行.例如:

2.while循環語句

與for循環語句相比,while循環語句一般用于不能確定循環次數的情況.它的判斷控制可以是一個邏輯判斷語句,因此它的應用更加靈活.

while循環語句的調用格式為:

當邏輯表達式的值為真時,執行循環體語句;當邏輯表達式的值為假時,終止該循環.當邏輯表達式的計算對象為矩陣時,只有當矩陣中所有元素均為真時,才執行循環體.當表達式為空矩陣時,不執行循環體中的任何語句.為了簡單起見,通常可以用函數all和any等把矩陣表達式轉換成標量.在while循環語句中,可以用break語句退出循環.

例1-20 尋找階乘超過1010的最小整數.

MATLAB命令為:

運行結果為:

1.3.3 選擇語句

在一些復雜的運算中,通常需要根據特定的條件來確定進行何種計算,為此MATLAB提供了if語句和switch語句,用于根據條件選擇相應的計算語句.

1.if語句

if語句根據邏輯表達式的值來確定是否執行選擇語句體.if語句的調用格式如下:

當執行if語句時,首先判斷邏輯表達式1的值,當邏輯表達式1的值為真時,執行選擇語句體1,執行完選擇語句體1后,跳出該選擇語句體繼續執行end后面的語句;當邏輯表達式1的值為假時,跳過選擇語句體1繼續判斷邏輯表達式2的值;當邏輯表達式2的值為真時,執行選擇語句體2,執行完選擇語句體2后跳出選擇語句體結構.如此進行,當if和elseif后的所有表達式的值都為假時,執行語句體else.

例1-21 編寫一個函數文件,計算分段函數的數值:

MATLAB命令為:

1)建立M函數文件li21.m:

2)調用M函數文件計算f(0.2),f(2),f(30),f(10π):

運行結果為:

2.switch語句

switch語句和if語句類似.switch語句根據變量或表達式的取值不同分別執行不同的命令.該語句的調用格式如下:

當表達式的值為1時,轉到語句體1;當表達式的值為2時,執行語句體2;當表達式的值不為關鍵字case所列的值時,執行語句體otherwise.

例1-22 編寫一個函數文件,根據不同的輸入值給出不同的顯示信息.

MATLAB命令為:

將文件保存為li22.

運行結果為:

1.3.4 交互語句

在很多程序設計語言中,經常會遇到輸入輸出控制、提前終止循環、跳出子程序、顯示出錯信息等.此時就要用到交互語句來控制程序的進行.

1.輸入輸出控制語句

輸入輸出語句包括用戶輸入提示信息語句(input)和請求鍵盤輸入語句(keyboard).

1)input用來提示用戶從鍵盤輸入數據、字符串或表達式,并接收輸入值.其調用格式如下:

●a=input(’prompt’)在屏幕上顯示提示信息prompt,等待用戶的輸入,輸入的數值賦給變量a.

●b=input(’prompt’,’s’)返回的字符串作為文本變量而不是變量名或數值.

如果沒有輸入任何字符,只是按回車鍵,input將返回一個空矩陣.在提示信息的文本字符串中可能包含“n”字符.“n”表示換行輸出,它允許用戶的提示字符串顯示為多行輸出.2)keyboard是在M文件中請求鍵盤輸入命令.其調用格式如下:

keyboard 該命令被放置在M文件中時,將停止文件的繼續執行并將控制權傳給鍵盤.

通過在提示符前顯示K來表示一種特殊狀態.在M文件中使用該命令,對程序的調試及在程序運行中修改變量都很方便.

為了終止keyboard模式,可以輸入命令return,然后按回車鍵.

2.等待用戶響應命令pause

pause命令用于暫時中止程序的運行.當程序運行此命令時,將暫時中止,然后等待用戶按任意鍵繼續運行.該命令在程序的調試過程和用戶需要查詢中間結果時十分有用,該命令的調用格式如下:

●pause 此命令將導致M文件停止運行,等待用戶按任意鍵繼續運行.

●pause(n) 在繼續運行前中止執行程序n秒,這里n可以是任意實數.時鐘的精度是由MATLAB的工作平臺所決定的,絕大多數工作平臺都支持0.01秒的時間間隔.

●pause on 允許后續的pause命令中止程序的運行.

●pause off 保證后續的任何pause或pause(n)語句都不中止程序的運行.

3.中斷命令break

break命令通常用在循環語句或條件語句中.通過使用break命令,可以不必等待循環的自然結束,而是根據循環的終止條件來跳出循環.

例1-23 編寫一個函數文件,計算雞兔同籠問題,即輸入個數和腳數,求解雞兔各有多少.

MATLAB命令為:

運行結果為:

4.continue命令

continue命令經常與for或while循環語句一起使用,作用是結束本次循環,即跳過循環體中下面尚未執行的語句,接著進行下一次循環.該命令的調用格式如下:

continue結束本次循環進入下一次循環.

5.return命令

return命令能夠使當前的函數正常退出.這個語句經常用于函數的末尾,以正常結束函數的運行.當然,該函數也經常用于其他地方,首先對特定條件進行判斷,然后根據需要,調用該語句終止當前運行,并返回.

6.error語句

在進行程序設計時,很多情況下會出現錯誤,此時如果能夠及時把錯誤顯示出來,則用戶將能夠根據錯誤信息找到錯誤的根源.MATLAB提供的error語句就是用于完成這類功能的.該語句的調用格式如下:

●error(’message’) 顯示錯誤信息,并將控制權交給鍵盤.提示的錯誤信息是字符串message的內容.如果message是空的字符串,則error命令將不起作用.

●error(’message’,A1,A2,…,An) 顯示的錯誤信息字符串中包含有格式化字符,例如,用于MATLABsprintf函數中的特殊字符.在提示信息中,每一個轉化字符被轉換成參數表中的A1,A2,…,An.

●error(’errID’,____) 包含此異常中的錯誤標識符。此標識符可用于區分錯誤,它還允許你控制在MATLAB遇到錯誤時系統做何反應。可以包括先前語法中的任何輸入參數。

●error(errorStruct) 使用標量結構體中的字段拋出錯誤。

●error(correction,___) 為異常提供建議修復。可以包括先前語法中的任何輸入參數。

7.warning語句

warning語句的用法與error語句類似,與error不同的是,warning語句不會中斷程序的執行,僅給出警告信息.

8.echo語句

一般情況下,執行M文件時,在命令行窗口中看不到文件中的命令,但在某些情況下,需要查看M文件中命令的執行情況.為此需要將M文件中的所有命令在執行過程中顯示出來,此時可以使用echo語句.

主站蜘蛛池模板: 乐清市| 绥江县| 白朗县| 神池县| 潮安县| 昌邑市| 武义县| 饶平县| 宁乡县| 柳林县| 浮山县| 德保县| 康马县| 峨边| 林州市| 新安县| 西宁市| 屏边| 江川县| 霍城县| 衡阳市| 湘潭市| 七台河市| 木兰县| 广宗县| 饶平县| 长宁县| 夏河县| 于田县| 珠海市| 庐江县| 如东县| 台南县| 海阳市| 墨脱县| 彰武县| 翁牛特旗| 丹棱县| 彭山县| 曲靖市| 定州市|