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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Matlab 快捷鍵介紹 常用的調試方法。 (1) 設置或清除斷點:使用快捷鍵F12。 (2) 執(zhí)行:使用快捷鍵F5。 (3) 單步執(zhí)行:使用快捷鍵F10。 (4) step in:當遇見函數時,進入函數內部,使用快捷鍵F11。 (5) step out:執(zhí)行流程跳出函數,使用快捷鍵Shift+F11。 (6) 執(zhí)行到光標所在位置:非常遺憾這項功能沒有快捷鍵,只能使用菜單來完成這樣的功能。 (7) 觀察變量或表達式的值:將鼠標放在要觀察的變量上停留片刻,就會顯示出變量的值,當矩陣太大時,只顯示矩陣的維數。 (8) 退出調試模式:沒有設置快捷鍵,使用菜單或者快捷按鈕來完成。 常用的快捷鍵(用【】

2、表示)或命令: 1. 在命令窗口(Command Window)中: 1) 【上、下鍵】切換到之前、之后的命令,可以重復按多次來達到你想要的命令 2) clc清除命令窗口顯示的語句,此命令并不清空當前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉 3) clear這個才是清空當前工作區(qū)的變量命令,常用語句clear all來完成 4)【Tab】鍵(轉自版友心燈)在emailmatlab/email看到的:在command窗口,輸入一個命令的前幾個字符,然后按tab鍵,會彈出前面含這幾個字符的所有命令,找到你要的命令,回車,就可以自動完成。目前討論結果是:matlab6.5版本中,如果候選命令

3、超過100個,則不顯示。而在matlab7以后版本中,則沒有這個限制,均可正常提示 5)【Ctrl+C】(或【CtrlBreak】)(轉自版友yangjin_ren)在matlab程序運行過程中,可能由于程序編寫的失誤,導致程序不停的運行,在命令窗口輸入“Ctrl+C”可以將運行的程序停下來,而不需要將整個Matlab程序關掉。不過進行此操作的前提是能夠激活切換到命令窗口才行,呵呵。 2. 在編輯器(Editor)中: 1) 【Tab】(或【Ctrl+】)增加縮進(對多行有效) 2) 【Ctrl+】減少縮進(對多行有效) 3) 【Ctrl+I】自動縮進(即自動排版,對多行有效) 4) 【Ctr

4、l+R】注釋(對多行有效) 5) 【Ctrl+T】去掉注釋(對多行有效) 6) 【Ctrl+B】括號配對檢查(對版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請大牛們指點,其他版本沒有測試過) 7) 【F12】設置或取消斷點 8) 【F5】運行程序快捷鍵 ctrl+i   讓matlab幫你自動對齊程序 ctrl+r   注釋 ctrl+t   取消注釋   常用操作 1、在Matlab里可以通過system這個

5、命令調出dos命令,比如創(chuàng)建文件夾:system('mkdir step1')在當前目錄下建立名為”step1"的文件夾!在實際編程中,可以結合函數exist使用。比如: if exist('Step1') = 0    system('mkdir Step1'); end 即:先判斷當前目錄下是否以存在名為Step1的子目錄(文件夾),如果不存在,則建立! 2、時間的標注:datanum與datetick初

6、學者要把下面的基本使用規(guī)則,牢記于心1. 輸入時,標點必須是英文狀態(tài)下的2. 大多數情況下,matlab對空格不予處理3. 小括號代表運算級別,中括號用于生成矩陣,大括號用于構成單元數組4. 分號;的作用:不顯示運算結果,但對圖形窗口不起作用。分號也用于區(qū)分行,5. 逗號,的作用:函數參數分隔符,也用于區(qū)分行,顯示運算結果,當然不加標點也顯示運算結果6. 冒號:多用于數組7. 續(xù)行號.不能放在等號后面使用,不能放在變量名中間使用,起作用時默認顯藍色8. 雙引號'string'是字符串的標識符9. 感嘆號!用于調用操作系統(tǒng)運算10.百分號%是注釋號,百分號后面直到行末的語句mat

7、lab跳過執(zhí)行.另外還有一個塊注釋,即對多行一次注釋,會使用到,格式為(注意% 和%都要單獨成行)% %11.乘號*總是不能省略的,除了表示復數,比如2+3i時可以省略12.除號/或,它兩個的關系是:a除以b表示為a/b,或ba13.等號=用于賦值14.雙等號=表示數學意義上的等號15.主窗口里面,輸入時,換行用Shift+Enter16.主窗口里面,運行程序,執(zhí)行命令用Enter17.矩陣中用圓括號表示下標,單元數組用大括號表示下標18.對變量名的基本要求:區(qū)分大小寫,不超過63個字符,以字母開頭,只能是字母,數字和下劃線19.clc即clear command(清屏),  

8、60;clf即clear figure(清理圖形窗口)   clear 清理內存所有變量,   clear+變量名 清理內存指定變量   edit+函數名 查看或編輯源文件   who 顯示當前變量名列表   whos 顯示變量詳細列表   which+函數名 證實該函數是否在當前路徑   what 列出當前路徑的所有matlab文件   load 加載外部文件   save 保存文件到外部20.matlab的幫助函

9、數:   help   help+函數名或help+函數類名 精確查詢   helpwin 打開幫助窗口   helpwin+函數名 精確查詢   helpdesk 打開幫助窗口   doc 打開幫助窗口   doc+函數名 打開幫助窗口, 精確查詢    lookfor+關鍵字 這個是matlab中的谷歌,模糊查詢21.有時候程序會陷入死循環(huán),這時把操作切換到運行窗口,按Ctrl+C結束運行22.函數式M文件的文件名,在matlab主

10、窗口下不區(qū)分大小寫,   函數式M文件中,變量都是局部變量   腳本式M文件中,變量都是全局變量23.主窗口中,幾個有用的快捷鍵:   在命令提示符后,可以用鍵盤上的上箭頭和下箭頭調用歷史命令行   Esc 清除當前輸入行   Ctrl+左箭頭,光標左移一個單詞   Ctrl+右箭頭,光標右移一個單詞   Del刪除光標后一個字符   Alt+Backspace 恢復上次刪除24.編輯器(Editor)中的幾個有用的快捷鍵: 

11、  Tab或Ctrl+ 增加縮進,對多行有效   Ctrl+ 減少縮進,對多行有效   Ctrl+I 自動縮進,對多行有效   Ctrl+R 注釋,對多行有效   Ctrl+T 去掉注釋,對多行有效   Ctrl+B 括號配對檢測,未配對會有紅色波浪線標出   F12 設置或取消斷點   F5 運行程序MATLAB程序調試方法和過程3.8  MATLAB程序的調試和優(yōu)化在MATLAB的程序調試過程中,不僅要求程序能夠滿足設計者的設計需求

12、,而且還要求程序調試能夠優(yōu)化程序的性能,這樣使得程序調試有時比程序設計更為復雜。MATLAB提供了強大的程序調試功能,合理的運用MATLAB提供的程序調試工具尤其重要。本節(jié)從MATLAB程序調試的方法和過程開始介紹,先讓用戶懂得合理運用MATLAB的程序調試功能,再總結MATLAB程序優(yōu)化的方法,從而達到實現提高程序性能的目的。3.8.1  MATLAB程序調試方法和過程(1)MATLAB是一種解釋和執(zhí)行同時進行的語言,這使得程序的調試變得相對便利,尤其是MATLAB具有良好的所見即所得特性。在MATLAB程序調試過程中,可運用的除了一系列調試函數外,MATLAB還提供了專門的調試器

13、,即M文件編譯器,通過該M文件編譯器和調試函數的共同使用,用戶能夠完成大部分的程序調試工作。1調試的基本任務程序調試(Debug)的基本任務就是要找到并去除程序中的錯誤。程序的錯誤大致可以分為如下三類。語法錯誤:由于程序員疏忽、輸入不正確等原因而造成的代碼違背程序語言規(guī)則的錯誤。運行錯誤:由于對所求解問題的理解差異,導致程序流程出錯或對程序本身的特性認識有誤而造成的程序執(zhí)行結果錯誤的情況。異常:程序執(zhí)行過程中由于不滿足條件而造成的程序執(zhí)行錯誤。語法錯誤是初學者最常犯的錯誤,例如,變量或函數名拼寫錯誤、缺少引號或括號等。這類錯誤對于熟練掌握MATLAB的用戶來說很容易避免,并且當MATLAB運行

14、發(fā)現這些錯誤時會立即標識出這些錯誤,并向用戶說明錯誤的類型以及在M文件中的位置,下面用一個例子來說明,在debug.m文件中輸入如下內容: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相乘  運行時則會出現如下錯誤:1. ? Error using => mti

17、mes  2. Inner matrix dimensions must agree.  在上述矩陣四則運算的例子中,矩陣A和矩陣B的維數不滿足運算前置條件,即兩個矩陣的維數不同不能進行運算。運行錯誤也能夠被MATLAB發(fā)現,但是用戶卻不知道錯誤到底發(fā)生在何處,也就不能通過查詢函數工作區(qū)域的方法來查詢錯誤來源,更多時候是MATLAB無法發(fā)現運行錯誤,但是運行結果在驗證時出錯。這類錯誤的處理方法多是依靠編程經驗解決,下面就求解方程組的例子來進行說明,在命令窗口中輸入以下指令: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  運行結果為:1. x =  2.     -2.6667         0    1.6667  3.     -2.1667    

20、60;    0    1.1667  4.     -1.6667         0    0.6667  該結果在不同計算機的不同版本的MATLAB下可能不完全相同。為了驗證這個結果,在命令窗口中輸入如下命令:1. >> A*x-B;     

21、0;                         %矩陣A,x和B進行計算  2. >> norm(A*x-B)                 

22、;         %返回表達式計算結果的最大奇異值  運算結果為:1. ans =  2.     74.4236  顯然x不是A*x=B的解。說明這就是一個簡單的運行錯誤,MATLAB同樣有運行結果,但是進行驗證時結果卻不正確。原因是在求解A*x=B方程的解時,應該不能用B右除A,而應該是左除,例如,在MATLAB命令窗口輸入如下命令:1. >> x=AB 運行結果為:1. x =

23、  2.     -27   -26   -17  3.      42    41    24  4.     -16   -16    -8  驗證結果為: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 運行錯誤通常很難發(fā)現,用戶在分析問題時要做到非常細心,并且有時需要做必要的驗證。異常的錯誤往往出現在規(guī)模較大的MATLAB程序中,并且涉及多個函數的調研以及數據的調用,異常的種類也很多,例如,被調用的文件不存在、數據傳輸路徑錯誤、異常的數據輸入等。3.8.1  MATLAB程序調試方法和過程(2

26、)2調試工具MATLAB提供了大量的調試函數供用戶使用,這些函數可以通過help指令獲得,在MATLAB命令執(zhí)行窗口輸入如下指令:1. >> help debug 用戶便可獲得這些函數,這些函數都有一個特點,就是以"db"開頭,具體功能和作用如下:1. dbstop     - Set breakpoint             &#

27、160;       %設置斷點  2. dbclear    - Remove breakpoint                  %清除斷點  3. dbcont     - Resume e

28、xecution                   %重新執(zhí)行  4. dbdown    - Change local workspace context  %下移本地工作空間內容  5. dbmex     - Enable 

29、;MEX-file debugging           %使MEX文件調試有效  6. dbstack    - List who called whom               %列出函數調用關系  7. dbstatu

30、s    - List all breakpoints              %列出所有斷點  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;%上移本地工作空間內容  11. dbquit     - Quit debug mode                    %退出調試模式  在MATLAB中,這些調試函數都有相應的圖形化調試工具,使得程序的調試更加方便、快捷。這些圖形化調試工具在MATLAB編譯器的"debug

33、"和"Breakpoints"菜單中,以方便調試使用。3調試方法對于簡單的MATLAB程序中出現的語法錯誤,可以采用直接調試法,即直接運行該M文件,MATLAB將直接找出語法錯誤的類型和出現的地方,根據MATLAB的反饋信息對語法錯誤進行修改。當M文件很大或M文件中含有復雜的嵌套時,則需要使用MATLAB調試器來對程序進行調試,即使用MATLAB提供的大量調試函數以及與之相對應的圖形化工具。下面通過一個判斷2000年至2010年間的閏年年份的示例來介紹MATLAB調試器的使用方法。(1)創(chuàng)建一個leapyear.m的M函數文件,并輸入如下函數代碼程序。1. %程序

34、為判斷2000年至2010年10年間的閏年年份  2. %本程序沒有輸入/輸出變量  3. %函數的使用格式為leapyear,輸出結果為2000年至2010年10年間的閏年年份  4. function leapyear                   %定義函數leapyear  5. for year=2000:2010 

35、60;            %定義循環(huán)區(qū)間   6.   sign=1;  7.   a = rem(year,100);            %求year除以100后的剩余數  8.   b = rem(year,

36、4);                  %求year除以4后的剩余數  9.   c = rem(year,400);                %求year除以400后的剩余數  10. if

37、 a =0                             %以下根據a、b、c是否為0對標志變量sign進行處理  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)運行以上M程序,此時MATLAB命令窗口會給出如下錯誤提示: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.  由錯誤提示可知,在程序的第10行存在語法錯誤,檢測可知if選擇判斷語句中,用戶將"="寫成了&

40、quot;="。因此將"="改成"=",同時也更改第13、16、19行中的"="為"="。3.8.1  MATLAB程序調試方法和過程(3)(3)程序修改并保存完成后,可直接運行修正后的程序,程序運行結果為:1. 2001   2. 2002   3. 2003   4. 2005   5. 2006   6. 2007   7. 2009   8. 201

41、0  顯然,2001年至2010年間不可能每年都是閏年,由此判斷程序存在運行錯誤。(4)分析原因??赡苡捎谠谔幚砟晏柺欠袷?00的倍數時,變量sign存在邏輯錯誤。(5)斷點設置。斷點為MATLAB程序執(zhí)行時人為設置的中斷點,程序運行至斷點時便自動停止運行,等待用戶的下一步操作。設置斷點只需要用鼠標單擊程序左側的" "使得" "變成紅色的圓點(當存在語法錯誤時圓點顏色為灰色),如圖3.2所示。應該在可能存在邏輯錯誤或需要顯示相關代碼執(zhí)行數據附近設置斷點,例如,本例中的12、15和18行。如果用戶需要去除斷點,可以再次單擊紅色圓點去除,也可以單擊工具欄中的 工具去除所有斷點。(6)運

溫馨提示

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

最新文檔

評論

0/150

提交評論