資源描述:
《第六講-MATLAB-語言程序設(shè)計.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第六講MATLAB語言程序設(shè)計6.1MATLAB語言的函數(shù)的基本結(jié)構(gòu)6.2全局、局部變量、子函數(shù)與私有目錄6.3MATLAB函數(shù)的跟蹤調(diào)試6.4MATLAB工具箱編寫技巧6.5MATLAB語言的程序流程語句6.6MATLAB中新的數(shù)據(jù)結(jié)構(gòu)6.7MATLAB語言編程技巧6.8例子與習(xí)題6.1MATLAB語言函數(shù)的基本結(jié)構(gòu)MATLAB語言提供了兩種源程序文件格式M腳本文件:它實際上是MATLAB命令窗中一系列命令的組合,它沒有輸入輸出參數(shù)傳遞的過程,它直接對工作區(qū)中的變量進行處理操作M函數(shù):這是MATLAB程序設(shè)計的主流,它可以傳遞參數(shù)及返回結(jié)
2、果,我們主要介紹M函數(shù)的編寫方法與技巧。6.1MATLAB語言函數(shù)的基本結(jié)構(gòu)M函數(shù)是由function語句引導(dǎo)的,其基本格式如下function[返回變量列表]=函數(shù)名(輸入變量列表)%由該符號引導(dǎo)的注釋語句段,在MATLAB命令窗%中用命令help函數(shù)名所得到的幫助就是這段文字。輸入、返回變量格式的檢測函數(shù)體語句只要進入該函數(shù),MATLAB就自動生成nargin和nargout兩個變量,分別表示輸入變量和輸出變量的個數(shù)。程序中可以根據(jù)這兩個變量的值來判斷用戶輸入?yún)?shù)的情況。6.1MATLAB語言函數(shù)的基本結(jié)構(gòu)M函數(shù)典型例子function
3、[magout,phase,w]=bode(a,b,c,d,iu,w)%BODEBodefrequencyresponseofLTImodels.%BODE(SYS)drawstheBodeplotoftheLTImodelSYS(createdwith%eitherTF,ZPK,SS,orFRD).Thefrequencyrangeandnumberof%pointsarechosenautomatically.%SeealsoBODEMAG,NICHOLS,NYQUIST,SIGMAni=nargin;no=nargout;………………
4、……….%endbode6.1MATLAB語言函數(shù)的基本結(jié)構(gòu)說明注釋符號%引導(dǎo)的內(nèi)容不能含空行,否則,后續(xù)的內(nèi)容不能由help命令看到,大部分作者及版權(quán)信息都是空行后的注釋內(nèi)容。當返回變量只有一個時,不用方框號[]括起來。函數(shù)名與該函數(shù)存盤用的文件名要一樣,否則MATLAB尋找的是文件名符合的函數(shù),而且老版本的MATLAB不能用超過8個字符的函數(shù)名。6.1MATLAB語言函數(shù)的基本結(jié)構(gòu)說明(續(xù))可以用type函數(shù)名來看函數(shù)文件的內(nèi)容??梢杂胑dit函數(shù)名來查看或編輯函數(shù)文件。為了使得MATLAB認識該函數(shù),要將該函數(shù)所在的目錄用cd命令設(shè)為
5、當前目錄,或用命令addpath添加到MATLAB的路徑中去(也可以用MATLAB菜單下的PATH命令)。6.2全局、局部變量、子函數(shù)與私有目錄MATLAB工作區(qū)中的變量和M函數(shù)內(nèi)部的變量都是局部變量,他們是互不干擾的,但也可以顯性地把變量定義為全局變量,使得他們在整個程序中都起作用。全局變量定義格式為globalabcd注意變量之間不能用逗號分開,在MATLAB工作區(qū)和M函數(shù)內(nèi)部同時要聲明該變量為全局變量。為保證函數(shù)的獨立性,一般情況下不建議使用全局變量。6.2全局、局部變量、子函數(shù)與私有目錄從MATLAB5.0開始引入子函數(shù)。所謂子函數(shù)
6、就是一個函數(shù)文件中不但包含該函數(shù)本身,還包含專門由該函數(shù)調(diào)用的下一級函數(shù),這樣的專門函數(shù)稱為子函數(shù)。子函數(shù)是不能有其他文件中的函數(shù)調(diào)用的。私有目錄即在當前的MATLAB目錄下建立一個private子目錄,該目錄下的內(nèi)容只能由當前目錄下的函數(shù)調(diào)用,而不能有其他函數(shù)調(diào)用。6.3MATLAB函數(shù)的跟蹤調(diào)試用MATLAB自帶的編輯器EDIT編輯所要跟蹤調(diào)試的程序,在希望的語句上設(shè)置斷點,在MATLAB命令窗按正常方式運行命令,程序會自動停留在所設(shè)的斷點處。調(diào)試狀態(tài)下,MATLAB命令窗的命令提示符變?yōu)镵>>。這時可輸入任何MATLAB命令,變量為函
7、數(shù)內(nèi)部的局部變量,而不是工作區(qū)中的變量。調(diào)試狀態(tài)下,鼠標指針指向想查詢的局部變量上將立即能顯示出該變量值。6.3MATLAB函數(shù)的跟蹤調(diào)試跟蹤調(diào)試程序中Debug菜單下的子菜單項的功能如下表菜單項執(zhí)行結(jié)果Set/ClearBreakpoint設(shè)置或清除斷點Continue繼續(xù)執(zhí)行到下一個斷點Step單步執(zhí)行Stepin單步,若該步調(diào)用函數(shù),則在該函數(shù)中也單步執(zhí)行ExitDebugMode退出調(diào)試狀態(tài)6.4MATLAB工具箱編寫技巧將為某種專門目的編寫一組MATLAB函數(shù)放在一個目錄下,就形成了一個新的工具箱。為了使得用戶能象MATLAB提供
8、的工具箱一樣使用該工具箱,必須將該工具箱所在的目錄用命令addpath添加到MATLAB的搜索路徑中去。為了能使得命令help工具箱名能列出該工具箱的所有函數(shù)的功能介紹,應(yīng)該按下