版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Matlab 快捷鍵介紹 常用的調(diào)試方法。 (1) 設(shè)置或清除斷點(diǎn):使用快捷鍵F12。 (2) 執(zhí)行:使用快捷鍵F5。 (3) 單步執(zhí)行:使用快捷鍵F10。 (4) step in:當(dāng)遇見函數(shù)時(shí),進(jìn)入函數(shù)內(nèi)部,使用快捷鍵F11。 (5) step out:執(zhí)行流程跳出函數(shù),使用快捷鍵Shift+F11。 (6) 執(zhí)行到光標(biāo)所在位置:非常遺憾這項(xiàng)功能沒有快捷鍵,只能使用菜單來完成這樣的功能。 (7) 觀察變量或表達(dá)式的值:將鼠標(biāo)放在要觀察的變量上停留片刻,就會(huì)顯示出變量的值,當(dāng)矩陣太大時(shí),只顯示矩陣的維數(shù)。 (8) 退出調(diào)試模式:沒有設(shè)置快捷鍵,使用菜單或者快捷按鈕來完成。 常用的快捷鍵(用【】
2、表示)或命令: 1. 在命令窗口(Command Window)中: 1) 【上、下鍵】切換到之前、之后的命令,可以重復(fù)按多次來達(dá)到你想要的命令 2) clc清除命令窗口顯示的語句,此命令并不清空當(dāng)前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉 3) clear這個(gè)才是清空當(dāng)前工作區(qū)的變量命令,常用語句clear all來完成 4)【Tab】鍵(轉(zhuǎn)自版友心燈)在emailmatlab/email看到的:在command窗口,輸入一個(gè)命令的前幾個(gè)字符,然后按tab鍵,會(huì)彈出前面含這幾個(gè)字符的所有命令,找到你要的命令,回車,就可以自動(dòng)完成。目前討論結(jié)果是:matlab6.5版本中,如果候選命令
3、超過100個(gè),則不顯示。而在matlab7以后版本中,則沒有這個(gè)限制,均可正常提示 5)【Ctrl+C】(或【CtrlBreak】)(轉(zhuǎn)自版友yangjin_ren)在matlab程序運(yùn)行過程中,可能由于程序編寫的失誤,導(dǎo)致程序不停的運(yùn)行,在命令窗口輸入“Ctrl+C”可以將運(yùn)行的程序停下來,而不需要將整個(gè)Matlab程序關(guān)掉。不過進(jìn)行此操作的前提是能夠激活切換到命令窗口才行,呵呵。 2. 在編輯器(Editor)中: 1) 【Tab】(或【Ctrl+】)增加縮進(jìn)(對(duì)多行有效) 2) 【Ctrl+】減少縮進(jìn)(對(duì)多行有效) 3) 【Ctrl+I】自動(dòng)縮進(jìn)(即自動(dòng)排版,對(duì)多行有效) 4) 【Ctr
4、l+R】注釋(對(duì)多行有效) 5) 【Ctrl+T】去掉注釋(對(duì)多行有效) 6) 【Ctrl+B】括號(hào)配對(duì)檢查(對(duì)版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請(qǐng)大牛們指點(diǎn),其他版本沒有測(cè)試過) 7) 【F12】設(shè)置或取消斷點(diǎn) 8) 【F5】運(yùn)行程序快捷鍵 ctrl+i 讓matlab幫你自動(dòng)對(duì)齊程序 ctrl+r 注釋 ctrl+t 取消注釋 常用操作 1、在Matlab里可以通過system這個(gè)
5、命令調(diào)出dos命令,比如創(chuàng)建文件夾:system('mkdir step1')在當(dāng)前目錄下建立名為”step1"的文件夾!在實(shí)際編程中,可以結(jié)合函數(shù)exist使用。比如: if exist('Step1') = 0 system('mkdir Step1'); end 即:先判斷當(dāng)前目錄下是否以存在名為Step1的子目錄(文件夾),如果不存在,則建立! 2、時(shí)間的標(biāo)注:datanum與datetick初
6、學(xué)者要把下面的基本使用規(guī)則,牢記于心1. 輸入時(shí),標(biāo)點(diǎn)必須是英文狀態(tài)下的2. 大多數(shù)情況下,matlab對(duì)空格不予處理3. 小括號(hào)代表運(yùn)算級(jí)別,中括號(hào)用于生成矩陣,大括號(hào)用于構(gòu)成單元數(shù)組4. 分號(hào);的作用:不顯示運(yùn)算結(jié)果,但對(duì)圖形窗口不起作用。分號(hào)也用于區(qū)分行,5. 逗號(hào),的作用:函數(shù)參數(shù)分隔符,也用于區(qū)分行,顯示運(yùn)算結(jié)果,當(dāng)然不加標(biāo)點(diǎn)也顯示運(yùn)算結(jié)果6. 冒號(hào):多用于數(shù)組7. 續(xù)行號(hào).不能放在等號(hào)后面使用,不能放在變量名中間使用,起作用時(shí)默認(rèn)顯藍(lán)色8. 雙引號(hào)'string'是字符串的標(biāo)識(shí)符9. 感嘆號(hào)!用于調(diào)用操作系統(tǒng)運(yùn)算10.百分號(hào)%是注釋號(hào),百分號(hào)后面直到行末的語句mat
7、lab跳過執(zhí)行.另外還有一個(gè)塊注釋,即對(duì)多行一次注釋,會(huì)使用到,格式為(注意% 和%都要單獨(dú)成行)% %11.乘號(hào)*總是不能省略的,除了表示復(fù)數(shù),比如2+3i時(shí)可以省略12.除號(hào)/或,它兩個(gè)的關(guān)系是:a除以b表示為a/b,或ba13.等號(hào)=用于賦值14.雙等號(hào)=表示數(shù)學(xué)意義上的等號(hào)15.主窗口里面,輸入時(shí),換行用Shift+Enter16.主窗口里面,運(yùn)行程序,執(zhí)行命令用Enter17.矩陣中用圓括號(hào)表示下標(biāo),單元數(shù)組用大括號(hào)表示下標(biāo)18.對(duì)變量名的基本要求:區(qū)分大小寫,不超過63個(gè)字符,以字母開頭,只能是字母,數(shù)字和下劃線19.clc即clear command(清屏),
8、60;clf即clear figure(清理圖形窗口) clear 清理內(nèi)存所有變量, clear+變量名 清理內(nèi)存指定變量 edit+函數(shù)名 查看或編輯源文件 who 顯示當(dāng)前變量名列表 whos 顯示變量詳細(xì)列表 which+函數(shù)名 證實(shí)該函數(shù)是否在當(dāng)前路徑 what 列出當(dāng)前路徑的所有matlab文件 load 加載外部文件 save 保存文件到外部20.matlab的幫助函
9、數(shù): help help+函數(shù)名或help+函數(shù)類名 精確查詢 helpwin 打開幫助窗口 helpwin+函數(shù)名 精確查詢 helpdesk 打開幫助窗口 doc 打開幫助窗口 doc+函數(shù)名 打開幫助窗口, 精確查詢 lookfor+關(guān)鍵字 這個(gè)是matlab中的谷歌,模糊查詢21.有時(shí)候程序會(huì)陷入死循環(huán),這時(shí)把操作切換到運(yùn)行窗口,按Ctrl+C結(jié)束運(yùn)行22.函數(shù)式M文件的文件名,在matlab主
10、窗口下不區(qū)分大小寫, 函數(shù)式M文件中,變量都是局部變量 腳本式M文件中,變量都是全局變量23.主窗口中,幾個(gè)有用的快捷鍵: 在命令提示符后,可以用鍵盤上的上箭頭和下箭頭調(diào)用歷史命令行 Esc 清除當(dāng)前輸入行 Ctrl+左箭頭,光標(biāo)左移一個(gè)單詞 Ctrl+右箭頭,光標(biāo)右移一個(gè)單詞 Del刪除光標(biāo)后一個(gè)字符 Alt+Backspace 恢復(fù)上次刪除24.編輯器(Editor)中的幾個(gè)有用的快捷鍵:
11、 Tab或Ctrl+ 增加縮進(jìn),對(duì)多行有效 Ctrl+ 減少縮進(jìn),對(duì)多行有效 Ctrl+I 自動(dòng)縮進(jìn),對(duì)多行有效 Ctrl+R 注釋,對(duì)多行有效 Ctrl+T 去掉注釋,對(duì)多行有效 Ctrl+B 括號(hào)配對(duì)檢測(cè),未配對(duì)會(huì)有紅色波浪線標(biāo)出 F12 設(shè)置或取消斷點(diǎn) F5 運(yùn)行程序MATLAB程序調(diào)試方法和過程3.8 MATLAB程序的調(diào)試和優(yōu)化在MATLAB的程序調(diào)試過程中,不僅要求程序能夠滿足設(shè)計(jì)者的設(shè)計(jì)需求
12、,而且還要求程序調(diào)試能夠優(yōu)化程序的性能,這樣使得程序調(diào)試有時(shí)比程序設(shè)計(jì)更為復(fù)雜。MATLAB提供了強(qiáng)大的程序調(diào)試功能,合理的運(yùn)用MATLAB提供的程序調(diào)試工具尤其重要。本節(jié)從MATLAB程序調(diào)試的方法和過程開始介紹,先讓用戶懂得合理運(yùn)用MATLAB的程序調(diào)試功能,再總結(jié)MATLAB程序優(yōu)化的方法,從而達(dá)到實(shí)現(xiàn)提高程序性能的目的。3.8.1 MATLAB程序調(diào)試方法和過程(1)MATLAB是一種解釋和執(zhí)行同時(shí)進(jìn)行的語言,這使得程序的調(diào)試變得相對(duì)便利,尤其是MATLAB具有良好的所見即所得特性。在MATLAB程序調(diào)試過程中,可運(yùn)用的除了一系列調(diào)試函數(shù)外,MATLAB還提供了專門的調(diào)試器
13、,即M文件編譯器,通過該M文件編譯器和調(diào)試函數(shù)的共同使用,用戶能夠完成大部分的程序調(diào)試工作。1調(diào)試的基本任務(wù)程序調(diào)試(Debug)的基本任務(wù)就是要找到并去除程序中的錯(cuò)誤。程序的錯(cuò)誤大致可以分為如下三類。語法錯(cuò)誤:由于程序員疏忽、輸入不正確等原因而造成的代碼違背程序語言規(guī)則的錯(cuò)誤。運(yùn)行錯(cuò)誤:由于對(duì)所求解問題的理解差異,導(dǎo)致程序流程出錯(cuò)或?qū)Τ绦虮旧淼奶匦哉J(rèn)識(shí)有誤而造成的程序執(zhí)行結(jié)果錯(cuò)誤的情況。異常:程序執(zhí)行過程中由于不滿足條件而造成的程序執(zhí)行錯(cuò)誤。語法錯(cuò)誤是初學(xué)者最常犯的錯(cuò)誤,例如,變量或函數(shù)名拼寫錯(cuò)誤、缺少引號(hào)或括號(hào)等。這類錯(cuò)誤對(duì)于熟練掌握MATLAB的用戶來說很容易避免,并且當(dāng)MATLAB運(yùn)行
14、發(fā)現(xiàn)這些錯(cuò)誤時(shí)會(huì)立即標(biāo)識(shí)出這些錯(cuò)誤,并向用戶說明錯(cuò)誤的類型以及在M文件中的位置,下面用一個(gè)例子來說明,在debug.m文件中輸入如下內(nèi)容:1. A=1 2 3,4 5 6,7 8 9;
15、0; %定義矩陣A 2. B=1 2 3 4,5 6 7 8,9 10 11 12,13 14 15 16; %定義矩陣B 3. C=A*B
16、60; %C為矩陣A和B相乘 運(yùn)行時(shí)則會(huì)出現(xiàn)如下錯(cuò)誤:1. ? Error using => mti
17、mes 2. Inner matrix dimensions must agree. 在上述矩陣四則運(yùn)算的例子中,矩陣A和矩陣B的維數(shù)不滿足運(yùn)算前置條件,即兩個(gè)矩陣的維數(shù)不同不能進(jìn)行運(yùn)算。運(yùn)行錯(cuò)誤也能夠被MATLAB發(fā)現(xiàn),但是用戶卻不知道錯(cuò)誤到底發(fā)生在何處,也就不能通過查詢函數(shù)工作區(qū)域的方法來查詢錯(cuò)誤來源,更多時(shí)候是MATLAB無法發(fā)現(xiàn)運(yùn)行錯(cuò)誤,但是運(yùn)行結(jié)果在驗(yàn)證時(shí)出錯(cuò)。這類錯(cuò)誤的處理方法多是依靠編程經(jīng)驗(yàn)解決,下面就求解方程組的例子來進(jìn)行說明,在命令窗口中輸入以下指令:1. >> A=1 2
18、0;3;4 5 6;7 8 9; 2. >>B=9 8 7;6 5 4;3 2 1; 3. >>x = B/A
19、; %x為矩陣B除以A 運(yùn)行結(jié)果為:1. x = 2. -2.6667 0 1.6667 3. -2.1667
20、60; 0 1.1667 4. -1.6667 0 0.6667 該結(jié)果在不同計(jì)算機(jī)的不同版本的MATLAB下可能不完全相同。為了驗(yàn)證這個(gè)結(jié)果,在命令窗口中輸入如下命令:1. >> A*x-B;
21、0; %矩陣A,x和B進(jìn)行計(jì)算 2. >> norm(A*x-B)
22、; %返回表達(dá)式計(jì)算結(jié)果的最大奇異值 運(yùn)算結(jié)果為:1. ans = 2. 74.4236 顯然x不是A*x=B的解。說明這就是一個(gè)簡(jiǎn)單的運(yùn)行錯(cuò)誤,MATLAB同樣有運(yùn)行結(jié)果,但是進(jìn)行驗(yàn)證時(shí)結(jié)果卻不正確。原因是在求解A*x=B方程的解時(shí),應(yīng)該不能用B右除A,而應(yīng)該是左除,例如,在MATLAB命令窗口輸入如下命令:1. >> x=AB 運(yùn)行結(jié)果為:1. x =
23、 2. -27 -26 -17 3. 42 41 24 4. -16 -16 -8 驗(yàn)證結(jié)果為:1. >> A*x-B 2
24、. ans = 3. 0 0 0 4. 0 0 0 5. 0
25、; 0 0 6. >> norm(A*x-B) 7. ans = 8. 0 運(yùn)行錯(cuò)誤通常很難發(fā)現(xiàn),用戶在分析問題時(shí)要做到非常細(xì)心,并且有時(shí)需要做必要的驗(yàn)證。異常的錯(cuò)誤往往出現(xiàn)在規(guī)模較大的MATLAB程序中,并且涉及多個(gè)函數(shù)的調(diào)研以及數(shù)據(jù)的調(diào)用,異常的種類也很多,例如,被調(diào)用的文件不存在、數(shù)據(jù)傳輸路徑錯(cuò)誤、異常的數(shù)據(jù)輸入等。3.8.1 MATLAB程序調(diào)試方法和過程(2
26、)2調(diào)試工具M(jìn)ATLAB提供了大量的調(diào)試函數(shù)供用戶使用,這些函數(shù)可以通過help指令獲得,在MATLAB命令執(zhí)行窗口輸入如下指令:1. >> help debug 用戶便可獲得這些函數(shù),這些函數(shù)都有一個(gè)特點(diǎn),就是以"db"開頭,具體功能和作用如下:1. dbstop - Set breakpoint
27、160; %設(shè)置斷點(diǎn) 2. dbclear - Remove breakpoint %清除斷點(diǎn) 3. dbcont - Resume e
28、xecution %重新執(zhí)行 4. dbdown - Change local workspace context %下移本地工作空間內(nèi)容 5. dbmex - Enable
29、;MEX-file debugging %使MEX文件調(diào)試有效 6. dbstack - List who called whom %列出函數(shù)調(diào)用關(guān)系 7. dbstatu
30、s - List all breakpoints %列出所有斷點(diǎn) 8. dbstep - Execute one or more lines &
31、#160; %單步或多步執(zhí)行 9. dbtype - List M-file with line numbers %列出M文件 10. dbup - Change local workspace context
32、0;%上移本地工作空間內(nèi)容 11. dbquit - Quit debug mode %退出調(diào)試模式 在MATLAB中,這些調(diào)試函數(shù)都有相應(yīng)的圖形化調(diào)試工具,使得程序的調(diào)試更加方便、快捷。這些圖形化調(diào)試工具在MATLAB編譯器的"debug
33、"和"Breakpoints"菜單中,以方便調(diào)試使用。3調(diào)試方法對(duì)于簡(jiǎn)單的MATLAB程序中出現(xiàn)的語法錯(cuò)誤,可以采用直接調(diào)試法,即直接運(yùn)行該M文件,MATLAB將直接找出語法錯(cuò)誤的類型和出現(xiàn)的地方,根據(jù)MATLAB的反饋信息對(duì)語法錯(cuò)誤進(jìn)行修改。當(dāng)M文件很大或M文件中含有復(fù)雜的嵌套時(shí),則需要使用MATLAB調(diào)試器來對(duì)程序進(jìn)行調(diào)試,即使用MATLAB提供的大量調(diào)試函數(shù)以及與之相對(duì)應(yīng)的圖形化工具。下面通過一個(gè)判斷2000年至2010年間的閏年年份的示例來介紹MATLAB調(diào)試器的使用方法。(1)創(chuàng)建一個(gè)leapyear.m的M函數(shù)文件,并輸入如下函數(shù)代碼程序。1. %程序
34、為判斷2000年至2010年10年間的閏年年份 2. %本程序沒有輸入/輸出變量 3. %函數(shù)的使用格式為leapyear,輸出結(jié)果為2000年至2010年10年間的閏年年份 4. function leapyear %定義函數(shù)leapyear 5. for year=2000:2010
35、60; %定義循環(huán)區(qū)間 6. sign=1; 7. a = rem(year,100); %求year除以100后的剩余數(shù) 8. b = rem(year,
36、4); %求year除以4后的剩余數(shù) 9. c = rem(year,400); %求year除以400后的剩余數(shù) 10. if
37、 a =0 %以下根據(jù)a、b、c是否為0對(duì)標(biāo)志變量sign進(jìn)行處理 11. signsign=sign-1; 12. end 13. if b=0
38、60;14. signsign=sign+1; 15. end 16. if c=0 17. signsign=sign+1; 18. end 19. if sign=1 20. fprintf('%4d n',year) 21. end 22. end (2)運(yùn)行以上M程序,此時(shí)MATLAB命令窗口會(huì)給出如下錯(cuò)誤提示:1. ? Error:
39、File: leapyear.m Line: 10 Column: 6 2. The expression to the left of the equals sign is not a valid target for an assignment. 由錯(cuò)誤提示可知,在程序的第10行存在語法錯(cuò)誤,檢測(cè)可知if選擇判斷語句中,用戶將"="寫成了&
40、quot;="。因此將"="改成"=",同時(shí)也更改第13、16、19行中的"="為"="。3.8.1 MATLAB程序調(diào)試方法和過程(3)(3)程序修改并保存完成后,可直接運(yùn)行修正后的程序,程序運(yùn)行結(jié)果為:1. 2001 2. 2002 3. 2003 4. 2005 5. 2006 6. 2007 7. 2009 8. 201
41、0 顯然,2001年至2010年間不可能每年都是閏年,由此判斷程序存在運(yùn)行錯(cuò)誤。(4)分析原因??赡苡捎谠谔幚砟晏?hào)是否是100的倍數(shù)時(shí),變量sign存在邏輯錯(cuò)誤。(5)斷點(diǎn)設(shè)置。斷點(diǎn)為MATLAB程序執(zhí)行時(shí)人為設(shè)置的中斷點(diǎn),程序運(yùn)行至斷點(diǎn)時(shí)便自動(dòng)停止運(yùn)行,等待用戶的下一步操作。設(shè)置斷點(diǎn)只需要用鼠標(biāo)單擊程序左側(cè)的" "使得" "變成紅色的圓點(diǎn)(當(dāng)存在語法錯(cuò)誤時(shí)圓點(diǎn)顏色為灰色),如圖3.2所示。應(yīng)該在可能存在邏輯錯(cuò)誤或需要顯示相關(guān)代碼執(zhí)行數(shù)據(jù)附近設(shè)置斷點(diǎn),例如,本例中的12、15和18行。如果用戶需要去除斷點(diǎn),可以再次單擊紅色圓點(diǎn)去除,也可以單擊工具欄中的 工具去除所有斷點(diǎn)。(6)運(yùn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年大學(xué)輕工紡織食品專業(yè)大學(xué)物理下冊(cè)期末考試試題A卷-含答案
- 石河子大學(xué)《中學(xué)歷史課程標(biāo)準(zhǔn)與教材分析》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《遙感數(shù)字圖像處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 一抹紅的詩句
- 石河子大學(xué)《習(xí)近平總書記關(guān)于教育的重要論述研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《生藥學(xué)實(shí)驗(yàn)》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《基礎(chǔ)素描》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《專業(yè)創(chuàng)新課程-嵌入式計(jì)算機(jī)產(chǎn)品案例》2023-2024學(xué)年期末試卷
- 沈陽理工大學(xué)《信號(hào)與系統(tǒng)》2021-2022學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《人工智能實(shí)例與應(yīng)用》2023-2024學(xué)年期末試卷
- 《春節(jié)的文化與習(xí)俗》課件
- 手機(jī)棋牌平臺(tái)網(wǎng)絡(luò)游戲商業(yè)計(jì)劃書
- 學(xué)校體育與社區(qū)體育融合發(fā)展的研究
- 醫(yī)療機(jī)構(gòu)高警示藥品風(fēng)險(xiǎn)管理規(guī)范(2023版)
- 一年級(jí)體質(zhì)健康數(shù)據(jù)
- 八年級(jí)物理(上)期中考試分析與教學(xué)反思
- 國(guó)家開放大學(xué)《財(cái)政與金融(農(nóng))》形考任務(wù)1-4參考答案
- 2023銀行網(wǎng)點(diǎn)年度工作總結(jié)
- 工廠反騷擾虐待強(qiáng)迫歧視政策
- 計(jì)算機(jī)教室(微機(jī)室)學(xué)生上機(jī)使用記錄
- FAI首件檢驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論