




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(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è)置,減小縮進 Ctrl+ ,增大縮進 Ctrl+l對齊代碼用Ctrl+I為什么用為什么用cell單元?單元?l在一個代碼很長的m腳本文件中,可能需要對其中的一段代碼一段代碼進行反復(fù)修改、查看執(zhí)行效果,這時,cell模式就非常有用,cell相當(dāng)于把相當(dāng)于把M文文件中的所有代碼
2、分成幾個模塊,每個模塊可以件中的所有代碼分成幾個模塊,每個模塊可以單獨運行。單獨運行。用光標(biāo)點擊某一個cell中任意位置時,背景將變?yōu)樘囟ǖ念伾?。cell模式中,斷模式中,斷點不起作用,但被調(diào)用的子程序中的斷點是可點不起作用,但被調(diào)用的子程序中的斷點是可以起作用的。以起作用的。 cell(單元)的使用(單元)的使用l在MATLAB的編輯編輯/調(diào)試器調(diào)試器中選擇菜單項cell Enable Cell Mode Cell啟動單元模式。cell(單元)的使用(續(xù))(單元)的使用(續(xù))用分隔符用分隔符“%” 定義單元定義單元l在要定義cell的代碼行的前一行插入分隔符%,表示一個新的單元的開始。l一個
3、單元是從本單元的%開始到下一個單元的%結(jié)束。l單元間的水平線可區(qū)分各個單元,該水平線在打印M文件時不顯示。lMATLAB不執(zhí)行以%開頭的代碼行,一般一般%后是單元標(biāo)題后是單元標(biāo)題,所以應(yīng)該從該行的下一行開始編寫代碼。給給cell加標(biāo)題加標(biāo)題l在分隔符%后鍵入一個空格,然后緊跟單元標(biāo)題,MATLAB自動將其用粗體顯示。加單元標(biāo)題可提高程序的可讀性。l當(dāng)鼠標(biāo)位于某一單元的任一行時,該單元所有的代碼會被高亮顯示高亮顯示。背景色可通過菜單選項設(shè)置File Preferences Editor/Debugger Display,修改修改cell display options。cell(單元)的使用(續(xù)
4、)(單元)的使用(續(xù))l一旦定義了單元,就可以使用cell工具欄中的按鈕實現(xiàn)在單元間切換查看各單元的代碼,并且可獨立的測試每個單元的代碼,查看相應(yīng)的輸出結(jié)果,即完成修改單元代碼的參數(shù)及調(diào)試。cell(單元)的使用(續(xù))(單元)的使用(續(xù))cell工具欄如下所示:工具欄如下所示:插入一個插入一個cell分隔線分隔線運行當(dāng)前運行當(dāng)前cell代碼代碼運行當(dāng)前運行當(dāng)前cell代碼,代碼,且運行完畢后跳到且運行完畢后跳到下一個單元下一個單元運行文件中運行文件中的所有代碼的所有代碼顯示單元標(biāo)題顯示單元標(biāo)題l查看某個單元,可通過點擊顯示單元標(biāo)題按鈕 ,挑選要查看的單元標(biāo)題l測試單元代碼,用菜單項Cell中的
5、測試選項或工具欄上的按鈕,測試時,單元的輸出結(jié)果會顯示在命令窗口或圖形窗口。l單元測試功能可以運行M文件編輯/調(diào)試器中當(dāng)前顯示的代碼,即使代碼被修改后沒有保存。測試的單元所在的M文件不必處于MATLAB的搜索路徑。cell(單元)的使用(續(xù))(單元)的使用(續(xù))l運行之后,修改單元中的數(shù)值,單元會自動重新計算并輸出結(jié)果,不必再次點擊運行按鈕。l要修改單元中的數(shù)值,首先要把鼠標(biāo)放在該數(shù)首先要把鼠標(biāo)放在該數(shù)旁邊旁邊,而后用單元工具欄上的數(shù)值修改工具數(shù)值修改工具。對數(shù)值進行修改。用這個工具,可以對這個數(shù)進行加、減、乘、除運算。l注意:注意:MATLAB不會自動保存用單元工具欄對變量進行的修改,所以修
6、改后要務(wù)必手動保存。所以修改后要務(wù)必手動保存。 cell(單元)的使用(續(xù))(單元)的使用(續(xù))M文件編輯文件編輯/調(diào)試器調(diào)試器 由現(xiàn)存的代碼創(chuàng)建M文件的方法:用命令歷史窗口命令歷史窗口中的語句,選中語句點擊右鍵,選擇Creat M-File。在大部分MATLAB函數(shù)(非內(nèi)置函數(shù))和工具箱函數(shù)上進行修改,改完后保存或另存。Demos中的例子。程序的調(diào)試程序的調(diào)試l程序一般可能出現(xiàn)的錯誤有:(1)語法錯誤,如拼寫錯誤等,此種錯誤很容易被發(fā)現(xiàn)。(2)運行錯誤,即用戶編寫的算法出現(xiàn)錯誤,此種錯誤不容易檢測,要不斷的進行調(diào)試。語法錯誤的檢測方法語法錯誤的檢測方法l利用MATLAB系統(tǒng)預(yù)設(shè)的一些語法強調(diào)
7、顏色語法強調(diào)顏色可檢測出錯誤所在;如關(guān)鍵字為藍(lán)色,錯誤為紅色等,請查看請查看File-Preferences-Color中的中的M-File syntax highlighting colors欄。欄。l利用分隔符匹配分隔符匹配可正確地匹配括號和關(guān)鍵字 選擇菜單File- Preferences- Keyboard - Delimiter Matching設(shè)置調(diào)試器檢查的匹配。 l當(dāng)運行有語法錯誤的M文件時,MATLAB在命令窗口顯示錯誤信息,并顯示出它所在的行。點擊錯誤信息部分的下劃線,相應(yīng)的M文件被打開,且光標(biāo)指向錯誤所在的那行。語法錯誤的檢測方法(續(xù))語法錯誤的檢測方法(續(xù))程序調(diào)試的過
8、程程序調(diào)試的過程l在調(diào)試程序之前先要確定被調(diào)試的文件已被保存,且已被加載到搜索路徑或設(shè)置為當(dāng)前路徑。l設(shè)置斷點 有三種基本類型的斷點可以設(shè)置: (1) 標(biāo)準(zhǔn)斷點,停在指定行 (2) 條件斷點,在特定條件下停在指定行 (3) 錯誤斷點,在特定類型的錯誤如警告、NaN、無窮值出現(xiàn)時程序停止運行,不用在指定的文件中指定行設(shè)置斷點。設(shè)置斷點時注意事項:設(shè)置斷點時注意事項:(1)如果想要檢查循環(huán)增量的值,不要再)如果想要檢查循環(huán)增量的值,不要再for語句處設(shè)置斷點,而是在語句處設(shè)置斷點,而是在for語句的下一行設(shè)語句的下一行設(shè)置,因為置,因為MATLAB只執(zhí)行一次只執(zhí)行一次for語句,所以語句,所以在在
9、for語句處設(shè)斷點,看不到增量的變化。語句處設(shè)斷點,看不到增量的變化。(2)在)在M文件編輯文件編輯/調(diào)試器中,左側(cè)標(biāo)注行號調(diào)試器中,左側(cè)標(biāo)注行號的后面具有的后面具有“”的行才是可執(zhí)行行,否則為的行才是可執(zhí)行行,否則為不可執(zhí)行行,如注釋行、空行。斷點要設(shè)置在不可執(zhí)行行,如注釋行、空行。斷點要設(shè)置在可執(zhí)行行上,如果設(shè)在不可執(zhí)行,系統(tǒng)認(rèn)為斷可執(zhí)行行上,如果設(shè)在不可執(zhí)行,系統(tǒng)認(rèn)為斷點是被設(shè)在了該行的下一行。點是被設(shè)在了該行的下一行。程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù))設(shè)置斷點的方法:(1)點擊M文件編輯器的breakpoint alley 欄,即點擊代碼前的“” ;也可把鼠標(biāo)放在設(shè)斷點的那一行,
10、而后點擊工具欄上的設(shè)置斷點按鈕 ,或點擊右鍵點擊Set/clear Breakpoint。(2)紅色表示有效斷點,灰色表示無效斷點,斷點為灰色的原因是文件被修改后未保存或此文件中存在語法錯誤。 l按F5運行M文件,碰到斷點停止。運行后的結(jié)果為:命令窗口的提示符變成了 K 表示MATLAB正處于調(diào)試狀態(tài) 。斷點處的綠色箭頭指出了接下來要被執(zhí)行的語句(言外之意是此行還未運行)。Stack域顯示出當(dāng)前的函數(shù),注意工作空間既可看到基本工作空間的變量也可看到函數(shù)的工作空間的局部變量。程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù))繼續(xù)運行,直到繼續(xù)運行,直到遇到下一個斷點遇到下一個斷點l單步調(diào)試M文件單步運行單
11、步運行進入函數(shù)進入函數(shù)step in跳出函數(shù)跳出函數(shù)step out退出調(diào)試退出調(diào)試模式模式當(dāng)點擊跳入子函數(shù)時,當(dāng)點擊跳入子函數(shù)時,Stack域顯示子函數(shù)的域顯示子函數(shù)的工作空間。子函數(shù)中的調(diào)試方法與主函數(shù)相同工作空間。子函數(shù)中的調(diào)試方法與主函數(shù)相同程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù))l檢測你所關(guān)注的變量。當(dāng)程序在斷點處停止運行時,你可以查看工作空間中的任意變量的當(dāng)前值。若當(dāng)前值與預(yù)期值相符,則程序沒錯,運行下一行,否則,在本行或前一行尋找錯誤。程序調(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)試時,可以在命令窗口給要檢測的變量賦一新值,看接下來程序的反應(yīng),如與預(yù)期結(jié)果相同,則沒問題;若有,則說明程序有問題。 b. 結(jié)束調(diào)試 要修改,保存文件必須退出調(diào)試模式。按退出調(diào)試模式的按鈕 c. 清除斷點 從debug下拉菜單中選Enable/Disable Breakpoint使斷點失靈,從而暫時忽略斷點?;蛘唿c擊 清除所有斷點。程序調(diào)試的過程(續(xù))程序調(diào)試的過程(續(xù)) M-Lint 代碼檢測和剖析報告代碼檢測和剖析報告lM-Lint信息幫助用戶學(xué)習(xí)更多的M
13、ATLAB特性,更加高效地開發(fā)M語言代碼。M-Lint幫助用戶仔細(xì)地遍歷代碼,使得代碼更加簡潔,高效和可維護。 l調(diào)用調(diào)用M-Lint的方法:的方法: l從MATLAB的Editor/Debugger,選擇Tools,并點擊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)生一個報告,根據(jù)報告中的意見去修改,或利用M-Lint的自
14、動代碼糾正功能,在M文件編輯/調(diào)試器中邊工作邊讓它來檢測。 編輯編輯/調(diào)試器中的調(diào)試器中的M-Lint 自動代碼分析器自動代碼分析器l分析器可對編輯/調(diào)試器中的M文件完成連續(xù)的、自動的代碼檢測 。l自動代碼分析器的使用方法:自動代碼分析器的使用方法:l使用它之前要確信M-Lint是有效的(在File-Preferences-M-Lint中設(shè)置)。打開要編輯/調(diào)試的文件,編輯窗口的右上邊編輯窗口的右上邊緣有一個緣有一個M-Lint信息指示器信息指示器:若為紅色則表示有語法錯誤;為橘黃色則表示警告或有可以改進的地方,但沒有錯誤;為綠色則表示既沒有語法錯誤又沒有警告和改進的地方 。點擊點擊M-Lin
15、t信息指示器可信息指示器可以使光標(biāo)到達(dá)下一個出現(xiàn)以使光標(biāo)到達(dá)下一個出現(xiàn)錯誤或警告的位置。錯誤或警告的位置。代碼段下方的紅色波浪線表示代碼段下方的紅色波浪線表示該處有錯誤或警告,鼠標(biāo)放在該處有錯誤或警告,鼠標(biāo)放在上面會出現(xiàn)相應(yīng)的上面會出現(xiàn)相應(yīng)的M-Lint信息。信息。打開例子程序打開例子程序:open(fullfile(matlabroot,help,techdoc,matlab_env,examples,lengthofline.m)M-Lint信息欄,紅色標(biāo)信息欄,紅色標(biāo)記代表錯誤,橘黃色標(biāo)記代表錯誤,橘黃色標(biāo)記代表警告或可以改進記代表警告或可以改進的地方。把鼠標(biāo)放在標(biāo)的地方。把鼠標(biāo)放在標(biāo)記
16、上可以查看檢測消息。記上可以查看檢測消息。被高亮的一些代碼標(biāo)明此處的被高亮的一些代碼標(biāo)明此處的錯誤或警告可以利用錯誤或警告可以利用M-Lint自自動修改它動修改它 ,把光標(biāo)放在此代,把光標(biāo)放在此代碼上,然后點擊鼠標(biāo)右鍵即可碼上,然后點擊鼠標(biāo)右鍵即可實現(xiàn)。實現(xiàn)。剖析器(剖析器(profiler)l在剖析器里面運行一個MATLAB語句或M文件,它會給此語句或文件的運行時間??梢詮腄esktop菜單訪問剖析器。利用剖析器來計算某段程序運行時間的方法有兩種: (1) 直接在profiler窗口中的Run this code欄輸入想分析的語句或M文件名稱,然后點擊Start Profiling或按回車鍵即可(注意被分析的M文件一定要在搜索路徑或當(dāng)前目錄中)。 (2) 嵌入代碼分析器;在預(yù)分析的代碼段的的首尾分別加上profile on 和profile viewer 命令,當(dāng)程序正常運行結(jié)束時,代碼分析器窗口將彈出。代碼分析窗口所包含的信息代碼分析窗口所包含的信息lFunction Name : 函數(shù)名;lCalls : 函數(shù)被調(diào)用次數(shù);lTotal Time : 執(zhí)行該函數(shù)的CPU總用時,包含任何其它被它調(diào)用的函數(shù)的CPU時間。lSelf Time : 執(zhí)行該函數(shù)的CUP總用時,不包含任何其它被它調(diào)用的函數(shù)的CUP時間。lTotal Time Plot : 時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 卷簾門維修合同協(xié)議書
- 中通快遞解除合同協(xié)議書
- 高新區(qū)合同轉(zhuǎn)讓協(xié)議模板
- 供暖沒有協(xié)議合同
- 開發(fā)合同暫停協(xié)議
- 攤位買賣協(xié)議合同
- 亞灣游艇租賃協(xié)議合同
- 防水涂料代加工協(xié)議合同
- 政府培訓(xùn)協(xié)議合同怎么寫
- 合作股權(quán)協(xié)議合同
- 2025年吉林鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫必考題
- 2025屆湖南省長沙市長郡二十校聯(lián)盟高三第二次預(yù)熱演練語文試題
- 中國糖尿病防治指南(2024版)解讀
- DB36 1993-2024 水產(chǎn)養(yǎng)殖尾水排放標(biāo)準(zhǔn)
- 《經(jīng)絡(luò)與腧穴》課件-手太陰肺經(jīng)
- 高校課堂教學(xué)創(chuàng)新大賽一等獎?wù)n件:混合教學(xué)模式創(chuàng)新實踐
- 人教版(2024)七年級下冊英語期中復(fù)習(xí):Unit1~4+期中共5套學(xué)情調(diào)研檢測試卷(含答案)
- 提升供應(yīng)商質(zhì)量管理的方案
- 《房顫診治指南解讀》課件
- 中考化學(xué)主題復(fù)習(xí)(重慶)專題4綜合實驗的探究
- 專題01 富強與創(chuàng)新【考情透視+框架梳理+考點突破+題型歸納】道德與法治上學(xué)期期末高效復(fù)習(xí)資料
評論
0/150
提交評論