版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計(jì)和M文獻(xiàn)
1程序控制2M文獻(xiàn)構(gòu)造3函數(shù)使用4程序調(diào)試1/271程序控制
1.1分支控制語句1.if構(gòu)造
if條件1
語句段1 elseif條件2
語句段2 ...... else
語句段n
end>>x=-5:0.1:5;>>ifx>=1y=x.^2-1elseif-1<x<1y=0*xelsey=-x.^3-1endplot(x,y)2/272.switch構(gòu)造switch體現(xiàn)式 case值1
語句段1
case值2
語句段2 ... otherwise
語句段n
end說明:將體現(xiàn)式依次與case背面值進(jìn)行比較,滿足值范圍就執(zhí)行對應(yīng)語句段,假如都不滿足則執(zhí)行otherwise背面語句段;體現(xiàn)式只能是標(biāo)量或字符串;case背面值能夠是標(biāo)量、字符串或元胞數(shù)組,假如是元胞數(shù)組則將體現(xiàn)式與元胞數(shù)組所有元素進(jìn)行比較,只要某個(gè)元素與體現(xiàn)式相等,就執(zhí)行其后語句段;switch和end必須配對使用。3/27例1使用switch構(gòu)造判斷學(xué)生成績等級,90分以上為優(yōu),80~90為良,70~80為中,60~70為及格,60分下列為不及格。>>score=98;>>s1=fix(score/10); %取十位數(shù)>>switchs1case{9,10}s='優(yōu)'case8s='良'case7s='中'case6s='及格'otherwises='不及格'end4/271.2循環(huán)控制語句1.for循環(huán) for循環(huán)變量=array 循環(huán)體 end說明:array能夠是向量也能夠是矩陣,循環(huán)執(zhí)行次數(shù)就是array列數(shù),每次循環(huán)中循環(huán)變量依次取array各列并執(zhí)行循環(huán)體,直到array所有列取完。forn=1:5 %循環(huán)5次forn=-1:0.1:1 %循環(huán)21次forn=linspace(-2*pi,2*pi,5) %循環(huán)5次a=eye(2,3);forn=a %循環(huán)3次,n為列向量練習(xí)5/272.while循環(huán) while條件體現(xiàn)式 循環(huán)體 end例2使用while循環(huán)計(jì)算f(x)=sin(x),x<5且每次x遞增ln(x)。>>x=0.1;>>whilex<5
f=sin(x)x=x+log(x) end6/273.break和continue語句(1)break語句break語句使包括break最內(nèi)層for或while循環(huán)強(qiáng)制終止,并立即跳出該循環(huán)構(gòu)造,執(zhí)行end背面命令,break一般與if語句結(jié)合使用。(2)continue語句continue語句與break不一樣是continue只結(jié)束本次for或while循環(huán),而繼續(xù)進(jìn)行下次循環(huán),continue一般也與if語句結(jié)合使用。7/271.3錯(cuò)誤控制語句 try
語句段1 catch
語句段2 end說明:先試探地執(zhí)行語句段1,假如出現(xiàn)錯(cuò)誤則將錯(cuò)誤信息賦給保存lasterr變量,并放棄語句段1轉(zhuǎn)而執(zhí)行語句段2中語句;假如語句段2正確則結(jié)束;假如語句段1正確則不執(zhí)行語句段2就結(jié)束;當(dāng)語句段1和語句段2都錯(cuò)誤,則程序犯錯(cuò)。當(dāng)錯(cuò)誤控制構(gòu)造運(yùn)行結(jié)束后,能夠調(diào)用lasterr函數(shù)查詢犯錯(cuò)信息,調(diào)用辦法是“[lastmsg,lastid]=lasterr”,其中l(wèi)astmsg保存犯錯(cuò)信息,lastid保存錯(cuò)誤類型。8/271.4流程控制命令1.return命令return命令用于提前結(jié)束程序執(zhí)行,并立即返回到上一級調(diào)用函數(shù)或等候鍵盤輸入命令,一般用于遇到特殊情況需要立即退出程序或終止鍵盤方式。應(yīng)注意當(dāng)程序進(jìn)入死循環(huán)時(shí),則按Ctrl+break鍵來終止程序運(yùn)行。2.keyboard命令keyboard命令用來使程序暫停運(yùn)行,等候鍵盤命令,命令窗口出現(xiàn)“K>>”提醒符,當(dāng)鍵盤輸入“return”后,程序才繼續(xù)運(yùn)行。keyboard命令能夠用來在程序調(diào)試或程序執(zhí)行時(shí)3.input命令r=input('str','s')%從鍵盤中輸入數(shù)據(jù)保存到變量r9/274.disp命令disp命令是較常用顯示命令,常用來顯示字符串型信息提醒。5.pause命令pause命令用來使程序暫停運(yùn)行,當(dāng)顧客按任意鍵才繼續(xù)執(zhí)行。常用于程序調(diào)試或查看中間成果,也能夠用來控制執(zhí)行速度。pause命令格式如下:pause(n) %暫停n秒練習(xí)10/272M文獻(xiàn)構(gòu)造MATLAB7.X程序假如要保存則使用擴(kuò)展名是“.m”M文獻(xiàn),M文獻(xiàn)有兩種即M腳本文獻(xiàn)(ScriptFile)和M函數(shù)文獻(xiàn)(FunctionFile)。11/272.1M文獻(xiàn)一般構(gòu)造1.函數(shù)申明行函數(shù)申明行是在M函數(shù)文獻(xiàn)第一行,只有M函數(shù)文獻(xiàn)必須有,以“function”引導(dǎo)并指定函數(shù)名、輸入和輸出參數(shù),M腳本文獻(xiàn)沒有函數(shù)申明行。2.H1行H1行是幫助文字第一行。3.幫助文本4.程序代碼
程序代碼由MATLAB語句和注釋語句組成。12/272.2M腳本文獻(xiàn)和M函數(shù)文獻(xiàn)1.M腳本文獻(xiàn)M腳本文獻(xiàn)說明如下:(1)MATLAB在運(yùn)行腳本文獻(xiàn)時(shí),只是簡單地按次序從文獻(xiàn)中讀取一條條命令,送到MATLAB命令窗口中去執(zhí)行;(2)M腳本文獻(xiàn)運(yùn)行產(chǎn)生變量都駐留在MATLAB工作空間中,能夠很方便地查看變量,在命令窗口中運(yùn)行命令都能夠使用這些變量;(3)腳本文獻(xiàn)命令能夠訪問工作空間所有數(shù)據(jù),因此要注意避免工作空間和腳本文獻(xiàn)中同名變量互相覆蓋,一般在M腳本文獻(xiàn)開頭使用“clear”命令清除工作空間變量。13/27例4在M文獻(xiàn)編輯/調(diào)試器窗口中編寫M腳本文獻(xiàn)得出10-50范圍內(nèi)所有素?cái)?shù)。%EX5_8計(jì)算10-50內(nèi)素?cái)?shù)cleary1=primes(50); %取得50以內(nèi)所有素?cái)?shù)n=length(primes(10)); %取得10以內(nèi)素?cái)?shù)個(gè)數(shù)y=y1(n+1:end)在命令窗口中輸入:>>ex5_8y=1113171923293137414347在工作空間中就能夠查看到變量y1、n和y,并能夠修改和使用這些變量。練習(xí)14/272.M函數(shù)文獻(xiàn)M函數(shù)文獻(xiàn)說明如下:(1)M函數(shù)文獻(xiàn)中函數(shù)申明行是必不可少;(2)M函數(shù)文獻(xiàn)在運(yùn)行過程中產(chǎn)生變量都寄存在函數(shù)本身工作空間中,函數(shù)工作空間是獨(dú)立、臨時(shí),隨詳細(xì)M函數(shù)文獻(xiàn)調(diào)用而產(chǎn)生并隨調(diào)用結(jié)束而刪除,在MATLAB運(yùn)行過程中假如運(yùn)行多種函數(shù)則產(chǎn)生多種臨時(shí)函數(shù)空間;(3)當(dāng)文獻(xiàn)執(zhí)行完最后一條命令或遇到“return”命令時(shí)就結(jié)束函數(shù)文獻(xiàn)運(yùn)行,同步函數(shù)工作空間變量被清除;(4)一種M函數(shù)文獻(xiàn)最少要定義一種函數(shù)。函數(shù)申明行格式如下:function[輸出參數(shù)列表]=函數(shù)名(輸入?yún)?shù)列表)
說明:函數(shù)名是函數(shù)名稱,保存時(shí)最佳函數(shù)名與文獻(xiàn)名一致,當(dāng)不一致時(shí),MATLAB以文獻(xiàn)名為準(zhǔn);輸入?yún)?shù)列表是函數(shù)接收輸入?yún)?shù),多種參數(shù)間用“,”分隔;輸出參數(shù)列表是函數(shù)運(yùn)算成果,多種參數(shù)間用“,”分隔。15/27ThinkingM函數(shù)文獻(xiàn)與腳本文獻(xiàn)區(qū)分???16/273函數(shù)使用
3.1主函數(shù)和子函數(shù)1.主函數(shù)一種M函數(shù)文獻(xiàn)中能夠包括一種或多種函數(shù),主函數(shù)是出目前文獻(xiàn)最上方函數(shù),即第一行申明函數(shù),一種M文獻(xiàn)只能有一種主函數(shù),一般主函數(shù)名與M函數(shù)文獻(xiàn)名相同。2.子函數(shù)(1)子函數(shù)次序無任何限制;(2)子函數(shù)只能被同一文獻(xiàn)中函數(shù)(主函數(shù)或子函數(shù))調(diào)用,不能被其他文獻(xiàn)函數(shù)調(diào)用;(3)同一文獻(xiàn)主函數(shù)和子函數(shù)運(yùn)行時(shí)工作空間是互相獨(dú)立。17/273.2函數(shù)輸入輸出參數(shù)1.參數(shù)傳遞函數(shù)參數(shù)傳遞是將主調(diào)函數(shù)中變量值傳給被調(diào)函數(shù)輸入?yún)?shù)(1)函數(shù)參數(shù)傳遞是數(shù)值(2)被調(diào)函數(shù)輸入?yún)?shù)是寄存在函數(shù)工作空間中,與MATLAB工作空間是獨(dú)立,當(dāng)調(diào)用結(jié)束時(shí)函數(shù)工作空間被清除,輸入?yún)?shù)也被清除。18/272.輸入輸出參數(shù)個(gè)數(shù)(1)nargin和nargout函數(shù)nargin('fun') %獲取函數(shù)fun輸入?yún)?shù)個(gè)數(shù)nargout('fun')%獲取函數(shù)fun輸出參數(shù)個(gè)數(shù)說明:fun是函數(shù)名,能夠省略,當(dāng)nargin和nargout函數(shù)在函數(shù)體內(nèi)時(shí)fun可省略,在函數(shù)外時(shí)fun不省略。(2)varargin和varargout函數(shù)varargin和varargout函數(shù)將函數(shù)調(diào)用時(shí)實(shí)際傳遞參數(shù)組成元胞數(shù)組,通過訪問元胞數(shù)組中各元素內(nèi)容來取得輸入輸出變量。functiony=fun(varargin)%輸入?yún)?shù)為varargin函數(shù)funfunctionvarargout=fun(x)%輸出參數(shù)為varargout函數(shù)fun19/274程序調(diào)試
4.1直接檢測(1)對于需要檢測變量能夠通過刪除語句行末尾分號,或在程序合適位置加顯示變量值語句,將成果顯示在命令窗口中;(2)調(diào)試函數(shù)時(shí),能夠?qū)⒃摵瘮?shù)第一句函數(shù)申明行前加“%”,并給輸入?yún)?shù)賦值,就能夠以腳本文獻(xiàn)方式來執(zhí)行該函數(shù),避免多種函數(shù)在一起運(yùn)行時(shí)查錯(cuò)不方便;(3)在程序合適位置添加“keyboard”語句,當(dāng)程序運(yùn)行至此句會暫停運(yùn)行,并在命令窗口顯示“k>>”提醒符,這時(shí)就能夠在命令窗口查看和修改各變量內(nèi)容。20/274.2M文獻(xiàn)編輯/調(diào)試器窗口1.“Debug”菜單(1)Step(F10)(2)Stepin(F11)和Stepout(shift+F11)(3)Run/Continue(F5)(4)Set/ClearBreakpoints(F12)(5)Set/ModifyConditionalBreakpoint…(6)StopifErrors/Warnings…(7)ExitDebugMode21/272.“Cell”菜單和工具欄“Cell”菜單和工具欄是MATLAB7.0版后新推出菜單,提出了單元調(diào)試概念,將程序提成一種個(gè)獨(dú)立單元(cell),每個(gè)單元用“%%”(單元分隔符)來分隔能夠單獨(dú)調(diào)試。(1)InsertCellDivider(2)EvaluateCurrentCell(3)EvaluateEntireFile(4)增減步長和增減倍數(shù)按鈕22/27練習(xí):運(yùn)行下列命令:>>a=eye(5);>>forn=a(2:end,:)
……則for循環(huán)循環(huán)次數(shù)是______。 A.5 B.4 C.3 D.1B23/27練習(xí):運(yùn)行下列命令則______>>a=[123]>>keyboard K>>a=[124];K>>returnA.a=[123] B.a=[124]C.命令窗口提醒符為“K>>” D.犯錯(cuò)B24/27練習(xí):編寫M腳本文獻(xiàn),分別使用for和while循環(huán)語句計(jì)算,當(dāng)sum>1000時(shí)終止程序。答案:clearsum=0forn=1:1000sum=n^n+sum
ifsum>1000breakendendclearsum=0;n=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)匯編職員管理篇
- 單位管理制度呈現(xiàn)大全人員管理篇
- 藝術(shù)節(jié)主持詞
- 70MW光伏發(fā)電項(xiàng)目工程(EPC)總承包投標(biāo)文件 承包人實(shí)施計(jì)劃
- 《市場營銷學(xué)導(dǎo)言》課件
- 《天貓規(guī)則學(xué)習(xí)》課件
- 空調(diào)維修公司保安工作總結(jié)
- 財(cái)務(wù)工作品質(zhì)提升總結(jié)
- 兒童新媒體編輯工作總結(jié)
- 2003年廣東高考語文真題及答案
- 血?dú)夥治黾芭R床應(yīng)用
- 光纜布線工程施工組織設(shè)計(jì)方案
- 食堂日??己嗽u分表(后勤)
- 高頻淬火設(shè)備安全操作規(guī)程
- 閘閥的操作力矩參考表
- 浙江省市政工程安全臺賬完整
- 環(huán)氧樹脂參考配方大全
- 花木綠化養(yǎng)護(hù)考核評分表
- #2鍋爐爐膛內(nèi)腳手架搭設(shè)及拆除施工方案
- 110KV變電站工程創(chuàng)優(yōu)監(jiān)理實(shí)施細(xì)則
- 教材中醫(yī)方劑學(xué)
評論
0/150
提交評論