matlab快捷鍵及程序調(diào)試_第1頁
matlab快捷鍵及程序調(diào)試_第2頁
matlab快捷鍵及程序調(diào)試_第3頁
matlab快捷鍵及程序調(diào)試_第4頁
matlab快捷鍵及程序調(diào)試_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論