版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第七講第七講MATLAB程序調(diào)試及程序調(diào)試及Cell單元功能單元功能 MATLAB中的快捷鍵中的快捷鍵l注釋符號用“%”l多行加注釋用Ctrl+R,取消多行注釋用Ctrl+T;也可以選中需要添加或取消注釋的程序,然后在菜單Text中/或者單擊鼠標(biāo)右鍵選擇Comment。或者Uncomment添加或取消注釋。l編寫代碼時(shí)層次設(shè)置,減小縮進(jìn) Ctrl+ ,增大縮進(jìn) Ctrl+l對齊代碼用Ctrl+I為什么用為什么用cell單元?單元?l在一個(gè)代碼很長的m腳本文件中,可能需要對其中的一段代碼一段代碼進(jìn)行反復(fù)修改、查看執(zhí)行效果,這時(shí),cell模式就非常有用,cell相當(dāng)于把相當(dāng)于把M文文件中的所有代碼
2、分成幾個(gè)模塊,每個(gè)模塊可以件中的所有代碼分成幾個(gè)模塊,每個(gè)模塊可以單獨(dú)運(yùn)行。單獨(dú)運(yùn)行。用光標(biāo)點(diǎn)擊某一個(gè)cell中任意位置時(shí),背景將變?yōu)樘囟ǖ念伾?。cell模式中,斷模式中,斷點(diǎn)不起作用,但被調(diào)用的子程序中的斷點(diǎn)是可點(diǎn)不起作用,但被調(diào)用的子程序中的斷點(diǎn)是可以起作用的。以起作用的。 cell(單元)的使用(單元)的使用l在MATLAB的編輯編輯/調(diào)試器調(diào)試器中選擇菜單項(xiàng)cell Enable Cell Mode Cell啟動(dòng)單元模式。cell(單元)的使用(續(xù))(單元)的使用(續(xù))用分隔符用分隔符“%” 定義單元定義單元l在要定義cell的代碼行的前一行插入分隔符%,表示一個(gè)新的單元的開始。l一個(gè)
3、單元是從本單元的%開始到下一個(gè)單元的%結(jié)束。l單元間的水平線可區(qū)分各個(gè)單元,該水平線在打印M文件時(shí)不顯示。lMATLAB不執(zhí)行以%開頭的代碼行,一般一般%后是單元標(biāo)題后是單元標(biāo)題,所以應(yīng)該從該行的下一行開始編寫代碼。給給cell加標(biāo)題加標(biāo)題l在分隔符%后鍵入一個(gè)空格,然后緊跟單元標(biāo)題,MATLAB自動(dòng)將其用粗體顯示。加單元標(biāo)題可提高程序的可讀性。l當(dāng)鼠標(biāo)位于某一單元的任一行時(shí),該單元所有的代碼會(huì)被高亮顯示高亮顯示。背景色可通過菜單選項(xiàng)設(shè)置File Preferences Editor/Debugger Display,修改修改cell display options。cell(單元)的使用(續(xù)
4、)(單元)的使用(續(xù))l一旦定義了單元,就可以使用cell工具欄中的按鈕實(shí)現(xiàn)在單元間切換查看各單元的代碼,并且可獨(dú)立的測試每個(gè)單元的代碼,查看相應(yīng)的輸出結(jié)果,即完成修改單元代碼的參數(shù)及調(diào)試。cell(單元)的使用(續(xù))(單元)的使用(續(xù))cell工具欄如下所示:工具欄如下所示:插入一個(gè)插入一個(gè)cell分隔線分隔線運(yùn)行當(dāng)前運(yùn)行當(dāng)前cell代碼代碼運(yùn)行當(dāng)前運(yùn)行當(dāng)前cell代碼,代碼,且運(yùn)行完畢后跳到且運(yùn)行完畢后跳到下一個(gè)單元下一個(gè)單元運(yùn)行文件中運(yùn)行文件中的所有代碼的所有代碼顯示單元標(biāo)題顯示單元標(biāo)題l查看某個(gè)單元,可通過點(diǎn)擊顯示單元標(biāo)題按鈕 ,挑選要查看的單元標(biāo)題l測試單元代碼,用菜單項(xiàng)Cell中的
5、測試選項(xiàng)或工具欄上的按鈕,測試時(shí),單元的輸出結(jié)果會(huì)顯示在命令窗口或圖形窗口。l單元測試功能可以運(yùn)行M文件編輯/調(diào)試器中當(dāng)前顯示的代碼,即使代碼被修改后沒有保存。測試的單元所在的M文件不必處于MATLAB的搜索路徑。cell(單元)的使用(續(xù))(單元)的使用(續(xù))l運(yùn)行之后,修改單元中的數(shù)值,單元會(huì)自動(dòng)重新計(jì)算并輸出結(jié)果,不必再次點(diǎn)擊運(yùn)行按鈕。l要修改單元中的數(shù)值,首先要把鼠標(biāo)放在該數(shù)首先要把鼠標(biāo)放在該數(shù)旁邊旁邊,而后用單元工具欄上的數(shù)值修改工具數(shù)值修改工具。對數(shù)值進(jìn)行修改。用這個(gè)工具,可以對這個(gè)數(shù)進(jìn)行加、減、乘、除運(yùn)算。l注意:注意:MATLAB不會(huì)自動(dòng)保存用單元工具欄對變量進(jìn)行的修改,所以修
6、改后要?jiǎng)?wù)必手動(dòng)保存。所以修改后要?jiǎng)?wù)必手動(dòng)保存。 cell(單元)的使用(續(xù))(單元)的使用(續(xù))M文件編輯文件編輯/調(diào)試器調(diào)試器 由現(xiàn)存的代碼創(chuàng)建M文件的方法:用命令歷史窗口命令歷史窗口中的語句,選中語句點(diǎn)擊右鍵,選擇Creat M-File。在大部分MATLAB函數(shù)(非內(nèi)置函數(shù))和工具箱函數(shù)上進(jìn)行修改,改完后保存或另存。Demos中的例子。程序的調(diào)試程序的調(diào)試l程序一般可能出現(xiàn)的錯(cuò)誤有:(1)語法錯(cuò)誤,如拼寫錯(cuò)誤等,此種錯(cuò)誤很容易被發(fā)現(xiàn)。(2)運(yùn)行錯(cuò)誤,即用戶編寫的算法出現(xiàn)錯(cuò)誤,此種錯(cuò)誤不容易檢測,要不斷的進(jìn)行調(diào)試。語法錯(cuò)誤的檢測方法語法錯(cuò)誤的檢測方法l利用MATLAB系統(tǒng)預(yù)設(shè)的一些語法強(qiáng)調(diào)
7、顏色語法強(qiáng)調(diào)顏色可檢測出錯(cuò)誤所在;如關(guān)鍵字為藍(lán)色,錯(cuò)誤為紅色等,請查看請查看File-Preferences-Color中的中的M-File syntax highlighting colors欄。欄。l利用分隔符匹配分隔符匹配可正確地匹配括號和關(guān)鍵字 選擇菜單File- Preferences- Keyboard - Delimiter Matching設(shè)置調(diào)試器檢查的匹配。 l當(dāng)運(yùn)行有語法錯(cuò)誤的M文件時(shí),MATLAB在命令窗口顯示錯(cuò)誤信息,并顯示出它所在的行。點(diǎn)擊錯(cuò)誤信息部分的下劃線,相應(yīng)的M文件被打開,且光標(biāo)指向錯(cuò)誤所在的那行。語法錯(cuò)誤的檢測方法(續(xù))語法錯(cuò)誤的檢測方法(續(xù))程序調(diào)試的過
8、程程序調(diào)試的過程l在調(diào)試程序之前先要確定被調(diào)試的文件已被保存,且已被加載到搜索路徑或設(shè)置為當(dāng)前路徑。l設(shè)置斷點(diǎn) 有三種基本類型的斷點(diǎn)可以設(shè)置: (1) 標(biāo)準(zhǔn)斷點(diǎn),停在指定行 (2) 條件斷點(diǎn),在特定條件下停在指定行 (3) 錯(cuò)誤斷點(diǎn),在特定類型的錯(cuò)誤如警告、NaN、無窮值出現(xiàn)時(shí)程序停止運(yùn)行,不用在指定的文件中指定行設(shè)置斷點(diǎn)。設(shè)置斷點(diǎn)時(shí)注意事項(xiàng):設(shè)置斷點(diǎn)時(shí)注意事項(xiàng):(1)如果想要檢查循環(huán)增量的值,不要再)如果想要檢查循環(huán)增量的值,不要再for語句處設(shè)置斷點(diǎn),而是在語句處設(shè)置斷點(diǎn),而是在for語句的下一行設(shè)語句的下一行設(shè)置,因?yàn)橹茫驗(yàn)镸ATLAB只執(zhí)行一次只執(zhí)行一次for語句,所以語句,所以在在
9、for語句處設(shè)斷點(diǎn),看不到增量的變化。語句處設(shè)斷點(diǎn),看不到增量的變化。(2)在)在M文件編輯文件編輯/調(diào)試器中,左側(cè)標(biāo)注行號調(diào)試器中,左側(cè)標(biāo)注行號的后面具有的后面具有“”的行才是可執(zhí)行行,否則為的行才是可執(zhí)行行,否則為不可執(zhí)行行,如注釋行、空行。斷點(diǎn)要設(shè)置在不可執(zhí)行行,如注釋行、空行。斷點(diǎn)要設(shè)置在可執(zhí)行行上,如果設(shè)在不可執(zhí)行,系統(tǒng)認(rèn)為斷可執(zhí)行行上,如果設(shè)在不可執(zhí)行,系統(tǒng)認(rèn)為斷點(diǎn)是被設(shè)在了該行的下一行。點(diǎn)是被設(shè)在了該行的下一行。程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù))設(shè)置斷點(diǎn)的方法:(1)點(diǎn)擊M文件編輯器的breakpoint alley 欄,即點(diǎn)擊代碼前的“” ;也可把鼠標(biāo)放在設(shè)斷點(diǎn)的那一行,
10、而后點(diǎn)擊工具欄上的設(shè)置斷點(diǎn)按鈕 ,或點(diǎn)擊右鍵點(diǎn)擊Set/clear Breakpoint。(2)紅色表示有效斷點(diǎn),灰色表示無效斷點(diǎn),斷點(diǎn)為灰色的原因是文件被修改后未保存或此文件中存在語法錯(cuò)誤。 l按F5運(yùn)行M文件,碰到斷點(diǎn)停止。運(yùn)行后的結(jié)果為:命令窗口的提示符變成了 K 表示MATLAB正處于調(diào)試狀態(tài) 。斷點(diǎn)處的綠色箭頭指出了接下來要被執(zhí)行的語句(言外之意是此行還未運(yùn)行)。Stack域顯示出當(dāng)前的函數(shù),注意工作空間既可看到基本工作空間的變量也可看到函數(shù)的工作空間的局部變量。程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù))繼續(xù)運(yùn)行,直到繼續(xù)運(yùn)行,直到遇到下一個(gè)斷點(diǎn)遇到下一個(gè)斷點(diǎn)l單步調(diào)試M文件單步運(yùn)行單
11、步運(yùn)行進(jìn)入函數(shù)進(jìn)入函數(shù)step in跳出函數(shù)跳出函數(shù)step out退出調(diào)試退出調(diào)試模式模式當(dāng)點(diǎn)擊跳入子函數(shù)時(shí),當(dāng)點(diǎn)擊跳入子函數(shù)時(shí),Stack域顯示子函數(shù)的域顯示子函數(shù)的工作空間。子函數(shù)中的調(diào)試方法與主函數(shù)相同工作空間。子函數(shù)中的調(diào)試方法與主函數(shù)相同程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù))l檢測你所關(guān)注的變量。當(dāng)程序在斷點(diǎn)處停止運(yùn)行時(shí),你可以查看工作空間中的任意變量的當(dāng)前值。若當(dāng)前值與預(yù)期值相符,則程序沒錯(cuò),運(yùn)行下一行,否則,在本行或前一行尋找錯(cuò)誤。程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù))檢測變量的方法檢測變量的方法:l在Stack域選擇工作空間。l在M文件編輯/調(diào)試器中把鼠標(biāo)放在你所關(guān)注的變
12、量上,用數(shù)據(jù)提示查看變量的值。l在命令窗口中查看值l在工作空間瀏覽器和陣列編輯器中查看值。l糾正問題和結(jié)束調(diào)試 a. 修改值檢測結(jié)果 調(diào)試時(shí),可以在命令窗口給要檢測的變量賦一新值,看接下來程序的反應(yīng),如與預(yù)期結(jié)果相同,則沒問題;若有,則說明程序有問題。 b. 結(jié)束調(diào)試 要修改,保存文件必須退出調(diào)試模式。按退出調(diào)試模式的按鈕 c. 清除斷點(diǎn) 從debug下拉菜單中選Enable/Disable Breakpoint使斷點(diǎn)失靈,從而暫時(shí)忽略斷點(diǎn)。或者點(diǎn)擊 清除所有斷點(diǎn)。程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù)) M-Lint 代碼檢測和剖析報(bào)告代碼檢測和剖析報(bào)告lM-Lint信息幫助用戶學(xué)習(xí)更多的M
13、ATLAB特性,更加高效地開發(fā)M語言代碼。M-Lint幫助用戶仔細(xì)地遍歷代碼,使得代碼更加簡潔,高效和可維護(hù)。 l調(diào)用調(diào)用M-Lint的方法:的方法: l從MATLAB的Editor/Debugger,選擇Tools,并點(diǎn)擊Check Code with M-Lint l使用matlab-mode觀測M-Lint信息 l在Current Directory browser,選擇M-Lint Code Check Report 在MATLAB命令行窗口鍵入mlint 使用使用M-Lint 的方法:的方法:l可以對現(xiàn)有的M文件或一組M文件產(chǎn)生一個(gè)報(bào)告,根據(jù)報(bào)告中的意見去修改,或利用M-Lint的自
14、動(dòng)代碼糾正功能,在M文件編輯/調(diào)試器中邊工作邊讓它來檢測。 編輯編輯/調(diào)試器中的調(diào)試器中的M-Lint 自動(dòng)代碼分析器自動(dòng)代碼分析器l分析器可對編輯/調(diào)試器中的M文件完成連續(xù)的、自動(dòng)的代碼檢測 。l自動(dòng)代碼分析器的使用方法:自動(dòng)代碼分析器的使用方法:l使用它之前要確信M-Lint是有效的(在File-Preferences-M-Lint中設(shè)置)。打開要編輯/調(diào)試的文件,編輯窗口的右上邊編輯窗口的右上邊緣有一個(gè)緣有一個(gè)M-Lint信息指示器信息指示器:若為紅色則表示有語法錯(cuò)誤;為橘黃色則表示警告或有可以改進(jìn)的地方,但沒有錯(cuò)誤;為綠色則表示既沒有語法錯(cuò)誤又沒有警告和改進(jìn)的地方 。點(diǎn)擊點(diǎn)擊M-Lin
15、t信息指示器可信息指示器可以使光標(biāo)到達(dá)下一個(gè)出現(xiàn)以使光標(biāo)到達(dá)下一個(gè)出現(xiàn)錯(cuò)誤或警告的位置。錯(cuò)誤或警告的位置。代碼段下方的紅色波浪線表示代碼段下方的紅色波浪線表示該處有錯(cuò)誤或警告,鼠標(biāo)放在該處有錯(cuò)誤或警告,鼠標(biāo)放在上面會(huì)出現(xiàn)相應(yīng)的上面會(huì)出現(xiàn)相應(yīng)的M-Lint信息。信息。打開例子程序打開例子程序:open(fullfile(matlabroot,help,techdoc,matlab_env,examples,lengthofline.m)M-Lint信息欄,紅色標(biāo)信息欄,紅色標(biāo)記代表錯(cuò)誤,橘黃色標(biāo)記代表錯(cuò)誤,橘黃色標(biāo)記代表警告或可以改進(jìn)記代表警告或可以改進(jìn)的地方。把鼠標(biāo)放在標(biāo)的地方。把鼠標(biāo)放在標(biāo)記
16、上可以查看檢測消息。記上可以查看檢測消息。被高亮的一些代碼標(biāo)明此處的被高亮的一些代碼標(biāo)明此處的錯(cuò)誤或警告可以利用錯(cuò)誤或警告可以利用M-Lint自自動(dòng)修改它動(dòng)修改它 ,把光標(biāo)放在此代,把光標(biāo)放在此代碼上,然后點(diǎn)擊鼠標(biāo)右鍵即可碼上,然后點(diǎn)擊鼠標(biāo)右鍵即可實(shí)現(xiàn)。實(shí)現(xiàn)。剖析器(剖析器(profiler)l在剖析器里面運(yùn)行一個(gè)MATLAB語句或M文件,它會(huì)給此語句或文件的運(yùn)行時(shí)間。可以從Desktop菜單訪問剖析器。利用剖析器來計(jì)算某段程序運(yùn)行時(shí)間的方法有兩種: (1) 直接在profiler窗口中的Run this code欄輸入想分析的語句或M文件名稱,然后點(diǎn)擊Start Profiling或按回車鍵即可(注意被分析的M文件一定要在搜索路徑或當(dāng)前目錄中)。 (2) 嵌入代碼分析器;在預(yù)分析的代碼段的的首尾分別加上profile on 和profile viewer 命令,當(dāng)程序正常運(yùn)行結(jié)束時(shí),代碼分析器窗口將彈出。代碼分析窗口所包含的信息代碼分析窗口所包含的信息lFunction Name : 函數(shù)名;lCalls : 函數(shù)被調(diào)用次數(shù);lTotal Time : 執(zhí)行該函數(shù)的CPU總用時(shí),包含任何其它被它調(diào)用的函數(shù)的CPU時(shí)間。lSelf Time : 執(zhí)行該函數(shù)的CUP總用時(shí),不包含任何其它被它調(diào)用的函數(shù)的CUP時(shí)間。lTotal Time Plot : 時(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國老年人口失能狀況及變化分析
- 人臉識別的智能防疫系統(tǒng)設(shè)計(jì)
- 會(huì)計(jì)職業(yè)生涯規(guī)劃
- Unit3 Listening 說課稿2024-2025學(xué)年外研版七年級英語上冊
- 山東省聊城市陽谷縣四校2024-2025學(xué)年七年級上學(xué)期1月期末水平調(diào)研道德與法治試題(含答案)
- 二零二五年度城市停車場施工廉政管理服務(wù)合同3篇
- 貴州商學(xué)院《軟裝設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 信息技術(shù)《使用掃描儀》說課稿
- 2025版家庭親子教育圖書訂閱服務(wù)合同范本3篇
- 二零二五年度家族企業(yè)股東股權(quán)繼承轉(zhuǎn)讓協(xié)議3篇
- 安全經(jīng)理述職報(bào)告
- 福建省泉州市2023-2024學(xué)年高一上學(xué)期期末質(zhì)檢英語試題 附答案
- 建筑項(xiàng)目經(jīng)理招聘面試題與參考回答(某大型集團(tuán)公司)2024年
- 安保服務(wù)評分標(biāo)準(zhǔn)
- (高清版)DB34∕T 1337-2020 棉田全程安全除草技術(shù)規(guī)程
- 部編版小學(xué)語文二年級上冊單元測試卷含答案(全冊)
- 護(hù)理部年終總結(jié)
- 部編版三年級上冊語文語文期末質(zhì)量監(jiān)測(含答題卡)
- KISSSOFT操作與齒輪設(shè)計(jì)培訓(xùn)教程
- 2024年第二季度粵港澳大灣區(qū)經(jīng)濟(jì)分析報(bào)告-PHBS
- 消防安全制度完整版
評論
0/150
提交評論