MATLAB文件與程序調試_第1頁
MATLAB文件與程序調試_第2頁
MATLAB文件與程序調試_第3頁
MATLAB文件與程序調試_第4頁
MATLAB文件與程序調試_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、M文件與程序調試文件與程序調試 在入門階段,通常在行命令模式下工作。鍵在入門階段,通常在行命令模式下工作。鍵 入一行命令后,讓系統(tǒng)立即執(zhí)行該命令。用入一行命令后,讓系統(tǒng)立即執(zhí)行該命令。用 這種方法時,程序可讀性差且難以存儲。對這種方法時,程序可讀性差且難以存儲。對 于復雜的問題,應編成可存儲的程序文于復雜的問題,應編成可存儲的程序文 件,件,再讓再讓MATLABMATLAB執(zhí)行該程序。執(zhí)行該程序。 MATLABMATLAB的程序類型有三種:的程序類型有三種: 直接在命令窗口下執(zhí)行的直接在命令窗口下執(zhí)行的MATLABMATLAB指令;指令; 可以存取的可以存取的M M文件,也叫文件,也叫腳本文件

2、腳本文件。 最后一種是最后一種是函數(shù)(函數(shù)(functionfunction)文件。)文件。 后兩種都是以后兩種都是以.m.m為后綴的為后綴的M M文件。文件。一、一、MATLAB程序程序后面的內容是程序的注解,注解使程序更具可讀性。后面的內容是程序的注解,注解使程序更具可讀性。在主程序開頭用在主程序開頭用clearclear指令清除變量,以消除工作空間中指令清除變量,以消除工作空間中其他變量對程序運行的影響。但注意在子程序中不要用其他變量對程序運行的影響。但注意在子程序中不要用clearclear。參數(shù)值要集中放在程序的開始部分,以便維護。應充分利參數(shù)值要集中放在程序的開始部分,以便維護。應

3、充分利用用MATLABMATLAB工具箱提供的指令來執(zhí)行所要進行的運算,在語工具箱提供的指令來執(zhí)行所要進行的運算,在語句行之后輸入分號使其及中間結果不在屏幕上顯示,以提句行之后輸入分號使其及中間結果不在屏幕上顯示,以提高執(zhí)行速度。高執(zhí)行速度。程序盡量模塊化,也就是采用主程序調用子程序的方法,程序盡量模塊化,也就是采用主程序調用子程序的方法,將所有子程序合并在一起來執(zhí)行全部的操作。將所有子程序合并在一起來執(zhí)行全部的操作。充分利用充分利用DebuggerDebugger來進行程序的調試(設置斷點、單步執(zhí)來進行程序的調試(設置斷點、單步執(zhí)行、連續(xù)執(zhí)行)。行、連續(xù)執(zhí)行)。設置好設置好MATLABMAT

4、LAB的工作路徑,以便程序運行。的工作路徑,以便程序運行。二、二、 MATLAB程序的基本設計原則程序的基本設計原則說明說明清除命令清除命令:清除:清除workspaceworkspace中的變量和圖形(中的變量和圖形(clear,closeclear,close)定義變量定義變量:包括全局變量的聲明及參數(shù)值的設定:包括全局變量的聲明及參數(shù)值的設定逐行執(zhí)行命令逐行執(zhí)行命令:指:指MATLABMATLAB提供的運算指令或工具箱提供的運算指令或工具箱 提供的專用命令提供的專用命令控制循環(huán)控制循環(huán) 包含包含:for,if,then,switch,while :for,if,then,switch,w

5、hile 等語句等語句 逐行執(zhí)行命令逐行執(zhí)行命令 endend繪圖命令繪圖命令:將運算結果繪制出來:將運算結果繪制出來三、三、 MATLAB程序體的基本組成結構程序體的基本組成結構復雜程序還需要調用子程序,或與其他應用程序結合起來。復雜程序還需要調用子程序,或與其他應用程序結合起來。在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同屬性。屬性。 綠色:注解綠色:注解;黑色:程序主體黑色:程序主體;紅色:屬性值的設定;紅色:屬性值的設定;藍色:控制流程。藍色:控制流程。在運行程序之前,必須設置好在運行程序之前,必須設置好MATLABMATLAB的工作路徑

6、,的工作路徑,使使得所要運行的程序及運行程序所需要的其他文件處在得所要運行的程序及運行程序所需要的其他文件處在當前目錄之下,只有這樣,才可以使程序得以正常運當前目錄之下,只有這樣,才可以使程序得以正常運行。否則可能導致無法讀取某些系統(tǒng)文件或數(shù)據(jù),從行。否則可能導致無法讀取某些系統(tǒng)文件或數(shù)據(jù),從而程序無法執(zhí)行。而程序無法執(zhí)行。通過通過cdcd指令在命令窗口中可以更改、顯示當前工作路指令在命令窗口中可以更改、顯示當前工作路徑。徑。通過路徑瀏覽器(通過路徑瀏覽器(path browserpath browser)也可以進行設置。)也可以進行設置。四、四、M文件的編輯及工作路徑設置文件的編輯及工作路徑

7、設置五、五、腳本腳本文件文件六、六、腳本腳本文件的創(chuàng)建與執(zhí)行文件的創(chuàng)建與執(zhí)行七、七、腳本腳本文件示例程序(文件示例程序(【例【例1 1】 已知已知A=5 8 9;A=5 8 9; B=11,12,13;14,15,16;17,18,19; B=11,12,13;14,15,16;17,18,19; 建立一個命令文件計算建立一個命令文件計算BABAT T的值的值, ,然后將然后將 變量變量A,BA,B的值互換。的值互換。%exchange.m文件文件A=5 8 9;B=11,12,13;14,15,16;17,18,19;compud %計算計算BATC=A;A=B;B=C;AB%compud.

8、m文件文件D=B*AT D = 268 334 400A = 11 12 13 14 15 16 17 18 19B = 5 8 9設置或清除斷點:使用快捷鍵設置或清除斷點:使用快捷鍵F12F12。執(zhí)行:使用快捷鍵執(zhí)行:使用快捷鍵F5F5。單步執(zhí)行:使用快捷鍵單步執(zhí)行:使用快捷鍵F10F10。step instep in:當遇見函數(shù)時,進入函數(shù)內部,使用快捷鍵:當遇見函數(shù)時,進入函數(shù)內部,使用快捷鍵F11F11。step outstep out:執(zhí)行流程跳出函數(shù),使用快捷鍵:執(zhí)行流程跳出函數(shù),使用快捷鍵Shift+F11Shift+F11。執(zhí)行到光標所在位置:非常遺憾這項功能沒有快捷鍵,執(zhí)行到

9、光標所在位置:非常遺憾這項功能沒有快捷鍵,只能使用菜單來完成這樣的功能。只能使用菜單來完成這樣的功能。 觀察變量或表達式的值:將鼠標放在要觀察的變量上停觀察變量或表達式的值:將鼠標放在要觀察的變量上停留片刻,就會顯示出變量的值,當矩陣太大時,只顯示留片刻,就會顯示出變量的值,當矩陣太大時,只顯示矩陣的維數(shù)。矩陣的維數(shù)。退出調試模式:沒有設置快捷鍵,使用菜單或者快捷按退出調試模式:沒有設置快捷鍵,使用菜單或者快捷按鈕來完成。鈕來完成。八、八、調試器的使用調試器的使用九、九、腳本腳本文件注意事項文件注意事項十、十、函數(shù)文件函數(shù)文件們設置為全局變量。們設置為全局變量。 (globalglobal)1

10、.1. 具有標準的基本結構。具有標準的基本結構。 function out1,out2,.=filename(in1,in2,.)輸入?yún)?shù)輸入?yún)?shù)輸出參數(shù)輸出參數(shù)可以是標量、數(shù)組、矩陣或字符串可以是標量、數(shù)組、矩陣或字符串十一、十一、函數(shù)文件基本結構函數(shù)文件基本結構 注注 1 1、其中函數(shù)名的命名規(guī)則與變量名相同。當輸出、其中函數(shù)名的命名規(guī)則與變量名相同。當輸出 參數(shù)多于參數(shù)多于1 1個時,則應該用方括號括起來。個時,則應該用方括號括起來。 2 2、函數(shù)文件也可以完全沒有輸入、輸出變量,簡、函數(shù)文件也可以完全沒有輸入、輸出變量,簡 單定義為:單定義為: function = filename十

11、二、十二、函數(shù)文件示例程序函數(shù)文件示例程序 function p=ff(x) %示例程序之一示例程序之一 n=length(x); for i=1:n pp(i)=sqrt(x(i)2+10); end p=pp*2-5; 函數(shù)文件函數(shù)文件ff.mff.m:函數(shù)調用:函數(shù)調用:x=1:5y=ff(x)y=ff(1:5)例:有輸入輸出參數(shù)的函數(shù)文件建立和調用例:有輸入輸出參數(shù)的函數(shù)文件建立和調用y = 1.6332 2.4833 3.7178 5.1980 6.8322結果顯示:結果顯示:十二、十二、函數(shù)文件示例程序函數(shù)文件示例程序 function test1 %示例程序之二示例程序之二 a=

12、function test b=1 2;3 4 函數(shù)文件函數(shù)文件test1.mtest1.m:函數(shù)調用:函數(shù)調用:在命令窗口鍵入在命令窗口鍵入test1test1RunRun運行運行例:無輸入輸出參數(shù)的函數(shù)文件建立和調用例:無輸入輸出參數(shù)的函數(shù)文件建立和調用十三、十三、函數(shù)文件注意事項函數(shù)文件注意事項十四、十四、函數(shù)文件與腳本文件的區(qū)別函數(shù)文件與腳本文件的區(qū)別十五、變量作用域十五、變量作用域幾點說明:幾點說明: 函數(shù)文件不能直接訪問函數(shù)文件不能直接訪問MATLABMATLAB工作空間中的全局變工作空間中的全局變量,它只能讀取通過參數(shù)傳入的變量和那些定義為全量,它只能讀取通過參數(shù)傳入的變量和那些

13、定義為全局變量的工作空間變量。局變量的工作空間變量。 若沒有特別定義,則函數(shù)內的變量為局部變量,即若沒有特別定義,則函數(shù)內的變量為局部變量,即使它與工作空間的變量同名,在該函數(shù)返回之后,這使它與工作空間的變量同名,在該函數(shù)返回之后,這些變量會自動地被清除掉,在其它函數(shù)內和基本工作些變量會自動地被清除掉,在其它函數(shù)內和基本工作空間中都不能被調用??臻g中都不能被調用。 如果在函數(shù)內訪問全局變量,必須在函數(shù)內用如果在函數(shù)內訪問全局變量,必須在函數(shù)內用globalglobal指令定義,定義的全局變量可以在函數(shù)內使用。指令定義,定義的全局變量可以在函數(shù)內使用。 使用全局變量前應在命令窗口中定義該變量,但

14、需使用全局變量前應在命令窗口中定義該變量,但需要準確定義其維數(shù)和維數(shù)大小。要準確定義其維數(shù)和維數(shù)大小。命令形式:命令形式:global global 全局變量列表全局變量列表十六、全局變量的語句格式十六、全局變量的語句格式在定義和使用全局變量時,應注意:在定義和使用全局變量時,應注意: 全局變量列表中各個變量名不能用逗號分隔。例如:全局變量列表中各個變量名不能用逗號分隔。例如:使用使用global a b c,dglobal a b c,d命令命令MATLABMATLAB編譯器會認為編譯器會認為a,b,ca,b,c三三個變量為全局變量,而個變量為全局變量,而d d是用戶想顯示的變量,從而出是用

15、戶想顯示的變量,從而出現(xiàn)不希望的結果?,F(xiàn)不希望的結果。 全局變量在使用前必須在全局變量在使用前必須在MATLABMATLAB工作空間中定義。工作空間中定義。在某一個具體的在某一個具體的MATLABMATLAB函數(shù)中如果要使用全局變量必函數(shù)中如果要使用全局變量必須在函數(shù)前面用須在函數(shù)前面用globalglobal命令聲明,否則在該函數(shù)即使命令聲明,否則在該函數(shù)即使使用了該變量名,也會被看作局部變量使用。使用了該變量名,也會被看作局部變量使用。 為保證函數(shù)的獨立性,一般情況下不使用全局變量。為保證函數(shù)的獨立性,一般情況下不使用全局變量。 在在MATLAB命令窗中運行以下指令:命令窗中運行以下指令:

16、global z1 z2z1=1:-0.1:0.6;z2=0:0.5:2;編寫函數(shù)文件編寫函數(shù)文件ff1.mfunction p=ff1(x)global z1 z2n=length(x);for i=1:n pp(i)=sqrt(x(i)2+10+z1(i)+z2(i);end p=pp*2-5; 例:在函數(shù)例:在函數(shù)ff.m中增加全局變量中增加全局變量十七、十七、全局變量應用示例程序全局變量應用示例程序 x=1:5;Y=ff1(x)程序運行:程序運行:Y = 3.6332 5.2833 7.3178 9.5980 12.0322結果顯示:結果顯示:十八、十八、 常用的人機交互命令常用的人機

17、交互命令(1 1)單變量輸入命令)單變量輸入命令 格式:格式:變量名變量名input(input(提示語句提示語句) ) 例如:例如:x=input(x=input(請輸入數(shù)值:請輸入數(shù)值:) )例:用一例:用一M M文件接受鍵盤輸入的數(shù)據(jù)并求其平方值。文件接受鍵盤輸入的數(shù)據(jù)并求其平方值。%This program is for square%This program is for squaren=input(enter a number)n=input(enter a number)n n* *n n(2 2)鍵盤控制命令)鍵盤控制命令 格式:格式:keyboardkeyboard 說明:程

18、序在此處暫停執(zhí)行,用戶可輸入說明:程序在此處暫停執(zhí)行,用戶可輸入 多行命令,最后輸入多行命令,最后輸入returnreturn返回返回十八、十八、 常用的人機交互命令常用的人機交互命令(3 3)暫停命令)暫停命令 格式:格式:pause %pause %暫停,直到按任意鍵暫停,直到按任意鍵 pause(n) %pause(n) %暫停暫停n n秒秒(4 4)命令顯示控制語句)命令顯示控制語句 格式:格式:echo on(off)echo on(off) 說明:控制是否在屏幕上顯示程序內容。說明:控制是否在屏幕上顯示程序內容。(5 5)按鍵控制命令)按鍵控制命令 格式:格式:waitforbuttonpresswaitforbuttonpress 說明:暫停,直至用戶按鼠標鍵或鍵盤鍵。說明:暫停,直至用戶按鼠標鍵或鍵盤鍵。(6) (6) 輸入菜單

溫馨提示

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

評論

0/150

提交評論