MATLAB基礎(chǔ)及應用(第6版)課件:MATLAB程序設(shè)計_第1頁
MATLAB基礎(chǔ)及應用(第6版)課件:MATLAB程序設(shè)計_第2頁
MATLAB基礎(chǔ)及應用(第6版)課件:MATLAB程序設(shè)計_第3頁
MATLAB基礎(chǔ)及應用(第6版)課件:MATLAB程序設(shè)計_第4頁
MATLAB基礎(chǔ)及應用(第6版)課件:MATLAB程序設(shè)計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB基礎(chǔ)及應用(第6版)

MATLAB程序設(shè)計本章要點

M文件的建立與調(diào)試方法

M文件的程序流程語句函數(shù)文件的建立與調(diào)用應用程序設(shè)計2.1M文件一、M文件的建立

MATLAB有“腳本”和“實時腳本”兩種文件,分別對應“編輯器”和“實時編輯器”。“實時腳本”和“實時函數(shù)”是交互式文檔,在“實時編輯器”中將MATLAB代碼與格式化文本、方程和圖像組合到一起,并將其顯示在創(chuàng)建的代碼右側(cè),其他功能與“編輯器”完全相同。打開MATLAB編輯器有以下三種方法:(1)單擊操作桌面工具欄上的“新建腳本”按鈕或“新建”→“腳本”選項。(2)在命令行窗口輸入命令“edit”,單擊〈Enter〉鍵。(3)使用快捷鍵。單擊按鍵〈Ctrl〉+〈N〉。打開MATLAB編輯器有以下三種方法:

2.建立新的M文件

在編輯器的文檔窗口輸入文件內(nèi)容,輸入完畢后,可以直接運行該文件,也可以先保存文件。單擊快捷鍵〈Ctrl〉+〈S〉或單擊工具欄的“保存”→“保存”(或“另存為”)按鈕,彈出“選擇另存的文件”對話框,默認的存盤名稱是Untitled。注意,M文件存放位置一般是MATLAB缺省的用戶工作目錄,當然也可以選擇別的存放目錄。3.運行M文件

輸入文件內(nèi)容并檢查后,單擊〈F5〉或工具欄中的“運行”按鈕,在出現(xiàn)的“選擇要另存的文件”對話框中,輸入文件名myfile.m(以上例為例),單擊“保存”。如果改變存盤目錄,會彈出“Matlab編輯器”對話框,單擊“更改文件夾”按鈕即可。在命令行窗口中,可看到文件運行的輸出結(jié)果。4.打開已有的M文件(1)命令按鈕操作:單擊工具欄的“打開”按鈕,從中選擇要打開的文件。(2)命令操作:在命令行窗口輸入命令edit<文件名>,回車后則打開指定的M文件。如果文件不在當前路徑下,還需在文件名前加上路徑。例如打開上例的文件,可在命令窗口的>>提示符后輸入editmyfile.m;(3)快捷鍵操作:單擊〈Ctrl〉+〈O〉,在打開的“Open”對話框中選擇要打開的文件。二、M文件的調(diào)試

1.直接調(diào)試法1)如果在錯誤信息中指出了出錯的行號,可先根據(jù)錯誤信息檢查該語句是否存在語法錯誤或運行中變量尺寸不一致等情況。2)檢查所調(diào)用函數(shù)或命令的拼寫是否正確,括號(包括方括號和圓括號)是否配對,各種流程控制語句是否匹配(如for與end、while與end、switch與end等)。3)檢查所調(diào)用的函數(shù)或載入的數(shù)據(jù)文件是否在當前目錄或搜索路徑上。4)將重點懷疑的命令行后的分號刪除,使得計算結(jié)果能夠?qū)崟r地顯示在屏幕上,作為查錯的依據(jù),根據(jù)顯示的結(jié)果判斷問題的所在。5)如果懷疑某個函數(shù)文件有問題,可以在該函數(shù)文件的函數(shù)定義行前加“%”,使其函數(shù)體成為命令文件(因為命令文件中的變量存儲在工作空間中,可以在工作空間窗口和數(shù)組編輯器觀察修改),再給函數(shù)的參數(shù)賦值,調(diào)好后再改回函數(shù)文件。2.文本編輯器的調(diào)試功能(1)設(shè)置斷點當程序運行至斷點處時會暫停運行,此時可通過檢查相關(guān)變量的內(nèi)容等方法確定程序的運行是否正確。圖中的紅色菱形點即為設(shè)置的斷點。(2)程序調(diào)試。工具欄中的按鈕功能如下:1)步進:單步執(zhí)行。每單擊一次,程序運行一次,但不進入函數(shù)。2)步入:單步運行。遇到函數(shù)時進入函數(shù)內(nèi),仍單步運行。3)步出:停止單步運行。如果是在函數(shù)中,跳出函數(shù);如果不在函數(shù)中,直接運行到下一個斷點處。4)運行到光標處:從當前位置運行到光標所在的位置。5)繼續(xù):繼續(xù)運行。6)退出調(diào)試:退出本次調(diào)試,但保留斷點。(3)調(diào)試結(jié)束。在斷點上單擊,取消斷點或單擊“斷點”→“取消斷點”按鈕。2.2程序流程語句一、if語句

1.單分支if語句其基本格式為:

if表達式語句組

end

說明:表達式多為關(guān)系或邏輯表達式。如果表達式為真(非零),就執(zhí)行if和end之間的語句組,然后再執(zhí)行end之后的語句;如果表達式為假(零),就直接執(zhí)行end之后的語句。2.雙分支if語句雙分支if語句結(jié)構(gòu)。其基本格式為:if表達式語句組1else語句組2end說明:如果表達式為真(非零),則執(zhí)行語句組1,

再執(zhí)行end后面的語句;如果表達式假(為零),則先執(zhí)行語句組2,

再執(zhí)行end后面的語句。if表達式1語句組1

elseif表達式2語句組2

…elseif表達式n

語句組nelse

語句組n+1end3.多分支if語句。其基本格式為:說明:先判斷表達式1的值,若為真,則執(zhí)行語句組1,執(zhí)行完語句組1后,跳出該選擇結(jié)構(gòu),繼續(xù)執(zhí)行end后的語句;當表達式1的值為假時,跳過語句組1,進而判斷表達式2,若為真,則執(zhí)行語句組2,然后繼續(xù)執(zhí)行end后的語句;如果表達式2的值也為假,則跳過語句組2,繼續(xù)判斷表達式3,如此下去……若所有表達式都為假,則執(zhí)行else后的語句組n+1,再執(zhí)行end后的語句。else語句可以缺省。二、switch語句switch語句是多分支選擇語句。

switch表達式

case數(shù)組1語句組1

case數(shù)組2語句組2

…case數(shù)組n語句組notherwise語句組n+1end說明:先計算表達式的值,再按順序與case語句后面的數(shù)組值進行比較,如果相等則執(zhí)行該組語句,然后執(zhí)行end后的語句,不再繼續(xù)比較。當表達式的值不等于任何一個case語句后面的數(shù)組值時,程序?qū)?zhí)行otherwise語句后的語句組,再執(zhí)行end后的語句。注意:這種情況下缺省otherwise語句,程序編譯時會提示出錯。三、while語句(未知循環(huán)次數(shù))while語句是條件循環(huán)語句,在條件(多為關(guān)系表達式)控制下重復執(zhí)行,直到條件不成立為止。格式如下:while表達式語句體end

說明:先計算表達式的值,如果非零,語句體就執(zhí)行一次;執(zhí)行完畢再次計算表達式的值,如果仍然非零,語句體就再執(zhí)行一次;如此循環(huán),直到表達式的值為零。

如果表達式的值總是非零,該循環(huán)將無休止地進行(即死循環(huán)),程序設(shè)計時一定要避免。四、for語句(已知循環(huán)次數(shù))for語句為計數(shù)循環(huán)語句,通常把循環(huán)條件初值、終值和變化步長放在循環(huán)語句的開頭,這種形式就是for語句的循環(huán)結(jié)構(gòu)。for循環(huán)的一般形式是:for循環(huán)變量名=表達式1:表達式2:表達式3

語句體end

說明:其中表達式1的值是循環(huán)變量的初值,表達式2的值是循環(huán)步長,表達式3的值是循環(huán)變量的終值。初值、步長和終值可以取整數(shù)、小數(shù)、正數(shù)和負數(shù),步長可以缺省,缺省值為1。2.2.5循環(huán)的嵌套如果一個循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個循環(huán)結(jié)構(gòu)就稱為循環(huán)的嵌套,或稱為多重循環(huán)。任一種循環(huán)語句的循環(huán)體部分都可以包含另一個循環(huán)語句,多重循環(huán)嵌套的層數(shù)可以是任意的。習慣上按照嵌套層數(shù),分別叫做二重循環(huán)、三重循環(huán)等。處于內(nèi)部的循環(huán)叫做內(nèi)循環(huán),處于外部的循環(huán)叫做外循環(huán)。在設(shè)計多重循環(huán)時,要特別注意內(nèi)、外循環(huán)之間的關(guān)系,以及語句放置次序,不要搞錯。六、其他語句1.continue語句

continue語句用于控制for循環(huán)或while循環(huán)跳過某些執(zhí)行語句,當出現(xiàn)continue語句時,則跳過循環(huán)體中所有剩余的語句,繼續(xù)下一次循環(huán),即結(jié)束本次循環(huán)。2.break語句

break語句用于終止for循環(huán)和while循環(huán)的執(zhí)行。當遇到break語句時,則退出循環(huán)體,繼續(xù)執(zhí)行循環(huán)體外的下一個語句,即中止循環(huán)。在嵌套循環(huán)中,break往往存在于內(nèi)層的循環(huán)中。3.try語句try語句是一種試探性執(zhí)行語句。語句格式為:

try

語句組1catch

語句組2end

說明:先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。2.3函數(shù)文件一、基本結(jié)構(gòu)函數(shù)文件由function關(guān)鍵字引導,其基本結(jié)構(gòu)為:

function[輸出形參表]=函數(shù)名(輸入形參表)注釋說明部分函數(shù)體語句return

說明:以function開頭的一行為引導行,表示該文件是一個函數(shù)文件。函數(shù)名的命名規(guī)則與變量名相同。輸入形參表是函數(shù)的輸入?yún)?shù),可以有多個,用“逗號”來分隔;輸出形參表為函數(shù)的輸出參數(shù),當輸出形參只有一個時,直接輸入變量名而不用方括號,多個輸出形參用“逗號”來分隔。

注意:函數(shù)文件編輯結(jié)束后,不能像M文件那樣單擊〈F5〉或單擊工具欄中的“運行”按鈕運行,而是要直接存盤。(1)函數(shù)文件名函數(shù)文件名通常由函數(shù)名再加上擴展名.m組成,不過函數(shù)文件名與函數(shù)名也可以不相同。(2)return語句如果在函數(shù)文件中插入了return語句,則執(zhí)行到該語句就結(jié)束函數(shù)的執(zhí)行,程序流程轉(zhuǎn)到調(diào)用該函數(shù)的位置??扇笔?。(3)注釋說明注釋說明包括以下三部分內(nèi)容:1)緊隨函數(shù)文件定義行之后,以%開頭的第一行。這一行一般包括大寫的函數(shù)文件名和函數(shù)功能的簡要描述,供lookfor關(guān)鍵詞查詢和help在線幫助用。2)第一行之后連續(xù)的注釋行。通常包括函數(shù)輸入、輸出參數(shù)的含義及調(diào)用格式說明等信息,構(gòu)成全部在線幫助文本。3)與在線幫助文本相隔一個空行的注釋行。包括函數(shù)文件編寫和修改的信息,如作者、修改日期、版本等內(nèi)容,用于軟件檔案管理。二、函數(shù)調(diào)用

函數(shù)文件編制好后,就可以調(diào)用函數(shù)進行計算了。函數(shù)調(diào)用的一般格式為:[輸出實參表]=函數(shù)名(輸入實參表)

需要注意的是,函數(shù)調(diào)用時各實參出現(xiàn)的順序、個數(shù),應與函數(shù)定義時形參的順序、個數(shù)一致,否則會出錯。函數(shù)調(diào)用時,先將實參傳遞給相應的形參,從而實現(xiàn)參數(shù)傳遞,然后再執(zhí)行函數(shù)的功能。三、參數(shù)的可調(diào)性MATLAB在函數(shù)調(diào)用上有一個與一般高級語言不同之處,就是函數(shù)所傳遞參數(shù)數(shù)目的可調(diào)性。

憑借這一點,一個函數(shù)可完成多種功能。在調(diào)用函數(shù)時,MATLAB用兩個永久變量nargin和nargout分別記錄調(diào)用函數(shù)時的輸入實參和輸出實參的個數(shù)。

只要在函數(shù)文件中包含這兩個變量,就可以準確地知道該函數(shù)文件被調(diào)用時的輸入輸出參數(shù)個數(shù),從而決定函數(shù)如何進行處理。2.4編程技巧一、測定程序執(zhí)行時間測定程序執(zhí)行時間通常是使用tic和toc函數(shù),tic用于

溫馨提示

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

評論

0/150

提交評論