版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.1.25.1 MATLAB程序設(shè)計(jì)程序設(shè)計(jì)o5.1.1 M文件文件o5.1.2 腳本文件和函數(shù)文件腳本文件和函數(shù)文件o5.1.5 數(shù)據(jù)的輸入輸出數(shù)據(jù)的輸入輸出o5.1.3 選擇結(jié)構(gòu)選擇結(jié)構(gòu)o5.1.4 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)o5.1.6 M文件調(diào)試文件調(diào)試.3o例例 建立一個(gè)命令文件將變量建立一個(gè)命令文件將變量a,ba,b的值互換,的值互換,然后運(yùn)行該命令文件。然后運(yùn)行該命令文件。 首先建立命令文件并以文件名exch.m存盤: clear; a=1:10; b=11,12,13,14;15,16,17,18; c=a;a=b;b=c; a b 然后在MATLAB的命令窗口中輸入exch,將會(huì)執(zhí)行該
2、命令文件。.41.建立新的M文件(1)(1)菜單操作菜單操作:MATLABMATLAB命令窗口的命令窗口的FileFile菜單菜單 New New菜單項(xiàng)菜單項(xiàng) M-file M-file命令。命令。(2)(2)命令操作命令操作:在:在MATLABMATLAB命令窗口輸入命令命令窗口輸入命令editedit。(3)(3)命令按鈕操作命令按鈕操作:?jiǎn)螕簦簡(jiǎn)螕鬗ATLABMATLAB命令窗口工具欄上的命令窗口工具欄上的“新建新建”命令按鈕。命令按鈕。2. 編輯已有的M文件3. M文件的分類 P116 4.1.2內(nèi)容分類:腳本文件分類:腳本文件(Script File)(Script File)和函數(shù)
3、文件和函數(shù)文件(Function (Function File)File)。主要區(qū)別。主要區(qū)別。M文件的建立與編輯文件的建立與編輯.5o函數(shù)定義行函數(shù)定義行oH1行行 對(duì)程序的總體介紹對(duì)程序的總體介紹o函數(shù)說明函數(shù)說明 對(duì)程序詳細(xì)描述對(duì)程序詳細(xì)描述o程序主體程序主體o注釋注釋 解釋程序功能的文字解釋程序功能的文字 說明:除程序主體外,其他部分以說明:除程序主體外,其他部分以%開頭。開頭。P116 實(shí)例實(shí)例.61 腳本文件腳本文件 沒有輸入和輸出沒有輸入和輸出由一系列指令組成由一系列指令組成可在命令窗口直接運(yùn)行可在命令窗口直接運(yùn)行產(chǎn)生的所有變量存儲(chǔ)在產(chǎn)生的所有變量存儲(chǔ)在workspace中。中。
4、例例 exam5_1.m。.7(1) (1) 函數(shù)文件的基本結(jié)構(gòu)函數(shù)文件的基本結(jié)構(gòu)函數(shù)文件由函數(shù)文件由function語句引導(dǎo)語句引導(dǎo)其基本結(jié)構(gòu)為:其基本結(jié)構(gòu)為: function 輸出形參表輸出形參表=函數(shù)名函數(shù)名(輸入形參表輸入形參表) %注釋說明部分注釋說明部分 函數(shù)體語句函數(shù)體語句.8(1)關(guān)于函數(shù)文件名關(guān)于函數(shù)文件名: 函數(shù)文件名與函數(shù)名也可以不相同。當(dāng)兩者不同時(shí),MATLAB將忽略函數(shù)名而確認(rèn)函數(shù)文件名,(2)關(guān)于注釋說明部分關(guān)于注釋說明部分。注釋說明包括三部分內(nèi)容:緊隨函數(shù)文件引導(dǎo)行之后以%開頭的第一注釋行。第一注釋行及之后連續(xù)的注釋行。與在線幫助文本相隔一空行的注釋行。 (1)
5、 函數(shù)文件的基本結(jié)構(gòu)函數(shù)文件的基本結(jié)構(gòu).9p函數(shù)調(diào)用的一般格式函數(shù)調(diào)用的一般格式:輸出實(shí)參表輸出實(shí)參表=函數(shù)名函數(shù)名(輸入實(shí)參表輸入實(shí)參表) 注意:等號(hào)左邊是方括號(hào),右邊輸入?yún)?shù)用注意:等號(hào)左邊是方括號(hào),右邊輸入?yún)?shù)用括號(hào)括號(hào)(2)函數(shù)文件的調(diào)用)函數(shù)文件的調(diào)用.10 function s,p=fcircle(r) %FCIRCLE calculate the area and perimeter of a circle of radii r %r 圓半徑 %s 圓面積 %p 圓周長(zhǎng) s=pi*r*r; p=2*pi*r; 以上函數(shù)文件以文件名fcircle.m存入c:matlab7workm
6、as下,然后在MATLAB命令窗口調(diào)用該函數(shù): s,p=fcircle(10)s,p=fcircle(10).11o函數(shù)的遞歸調(diào)用函數(shù)的遞歸調(diào)用n例:利用遞歸調(diào)用函數(shù)文件factor.m: function f=factor(n) if n=A & c=a& c=0& c=9 disp(abs(c)-abs(0); else disp(c); end.26oswitchswitch語句語句其語句格式為:其語句格式為: switch switch 表達(dá)式表達(dá)式 case case 值值1 1 語句組語句組1 1 case case 值值2 2 語句組語句組2 2 case
7、 case 值值m m 語句組語句組m m otherwise otherwise 語句組語句組m+1m+1 end end.27o例例 某商場(chǎng)對(duì)顧客所購買的商品實(shí)行打折銷售,已知打折標(biāo)某商場(chǎng)對(duì)顧客所購買的商品實(shí)行打折銷售,已知打折標(biāo)準(zhǔn),求所售商品的實(shí)際銷售價(jià)格準(zhǔn),求所售商品的實(shí)際銷售價(jià)格n程序如下: price=input(請(qǐng)輸入商品價(jià)格); switch fix(price/100) case 0,1 rate=0; case 2,3,4 rate=3/100; case num2cell(5:9) rate=5/100; case num2cell(10:24) rate=8/100;
8、case num2cell(25:49) rate=10/100; otherwise rate=14/100; end price=price*(1-rate).28語句格式為:語句格式為:try 語句組1catch 語句組2end try語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯(cuò)誤,則將錯(cuò)誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。這種試探性執(zhí)行語句是其他高級(jí)語言所沒有的。.295.1.4 選擇結(jié)構(gòu)選擇結(jié)構(gòu)-try-try語句語句o例例 矩陣乘法運(yùn)算要求兩矩陣的維數(shù)相容,否則會(huì)出錯(cuò)。矩陣乘法運(yùn)算要求兩矩陣的維數(shù)相容,否則會(huì)出錯(cuò)。先求兩矩陣的乘積,若出錯(cuò),則自動(dòng)轉(zhuǎn)去
9、求兩矩陣的點(diǎn)乘先求兩矩陣的乘積,若出錯(cuò),則自動(dòng)轉(zhuǎn)去求兩矩陣的點(diǎn)乘o程序如下:程序如下:main5_3.mmain5_3.mA=1,2,3;4,5,6; B=7,8,9;10,11,12;A=1,2,3;4,5,6; B=7,8,9;10,11,12;trytry C=A C=A* *B;B;catchcatch C=A. C=A.* *B;B;endendC Clasterr %lasterr %顯示出錯(cuò)原因顯示出錯(cuò)原因.30n循環(huán)語句循環(huán)語句ofor語句語句owhile語句語句n循環(huán)的嵌套循環(huán)的嵌套.315.1.5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)- for語句語句o1. for語句語句n語句格式為:語句格
10、式為: for 循環(huán)變量循環(huán)變量=表達(dá)式表達(dá)式1:表達(dá)式表達(dá)式2:表達(dá)表達(dá)式式3 循環(huán)體語句循環(huán)體語句 end.32ofor語句更一般的格式:語句更一般的格式: for 循環(huán)變量循環(huán)變量=矩陣表達(dá)式矩陣表達(dá)式 循環(huán)體語句循環(huán)體語句 end 執(zhí)行過程是依次將矩陣的,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢。實(shí)際上,“表達(dá)式1:表達(dá)式2:表達(dá)式3”是一個(gè)僅為一行的矩陣(行向量),因而列向量是單個(gè)數(shù)據(jù)。5.1.5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)- for語句語句.33o例例 已知已知5 5個(gè)學(xué)生個(gè)學(xué)生4 4門功課的成績(jī),求每名學(xué)生的總門功課的成績(jī),求每名學(xué)生的總成績(jī)成績(jī)n程序如下:程序如下:s=0;s=0;a=6
11、5,76,56,78;98,83,74,85;76,67,78,79;98,58,4a=65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87;2,73;67,89,76,87;for k=afor k=a s=s+k; s=s+k;endenddisp(s);disp(s);5.1.5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)- for語句語句.34owhilewhile語句的一般格式為:語句的一般格式為: while (while (條件條件) ) 循環(huán)體語句循環(huán)體語句 endend 其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成
12、立,如果不成立則跳出循環(huán).35其他常用指令其他常用指令oContinueoBreak.36continuecontinue命令命令通常用于通常用于for或或while循環(huán)語句中循環(huán)語句中,與與if語句一起使用語句一起使用,達(dá)到達(dá)到跳過跳過本次循環(huán)本次循環(huán),去執(zhí)行下一輪循環(huán)去執(zhí)行下一輪循環(huán)的目的的目的分析下列程序,說明運(yùn)行結(jié)果及原因分析下列程序,說明運(yùn)行結(jié)果及原因a=3;b=6;for i=1:3 b=b+1; if i2 continue %當(dāng)當(dāng)if條件滿足時(shí)不再執(zhí)行后面語句條件滿足時(shí)不再執(zhí)行后面語句,跳,跳 出本次循環(huán)。出本次循環(huán)。 end a=a+2 %當(dāng)當(dāng)i2i2a=7b=9.37 br
13、eak命令命令通常用于通常用于for或或while循環(huán)語句中循環(huán)語句中,與與if語句一起使用語句一起使用,中止本次循中止本次循環(huán)環(huán),跳出最內(nèi)層循環(huán)跳出最內(nèi)層循環(huán)分析下列程序,說明運(yùn)行結(jié)果及原因分析下列程序,說明運(yùn)行結(jié)果及原因a=3;b=6;for i=1:3 b=b+1; if i2 break %當(dāng)當(dāng)if條件滿足時(shí)不再執(zhí)行循環(huán)條件滿足時(shí)不再執(zhí)行循環(huán) end a=a+2end運(yùn)行結(jié)果運(yùn)行結(jié)果:a=7b=9i2i2a=3b=6.38程序流控制語句程序流控制語句 return指令指令 終止當(dāng)前的命令序列,把控制返回到調(diào)用函數(shù)或終止當(dāng)前的命令序列,把控制返回到調(diào)用函數(shù)或鍵盤。鍵盤。 keyboard
14、 把把“控制權(quán)控制權(quán)”交給鍵盤。交給鍵盤。 error和和warning 顯示出錯(cuò)和警告信息。顯示出錯(cuò)和警告信息。.39o如果一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個(gè)循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)。可以按照嵌套層數(shù),分別叫做二重循環(huán)、三重循環(huán)等。處于內(nèi)部的循環(huán)叫作內(nèi)循環(huán),處于外部的循環(huán)叫作外循環(huán)。o在設(shè)計(jì)多重循環(huán)時(shí),要特別注意內(nèi)、外循環(huán)之間的關(guān)系,以及各語句放置的位置,不要搞錯(cuò)。.40補(bǔ)充:1 Matlab命令執(zhí)行過程輸入輸入 china輸出變量輸出變量china的值的值變量?變量?執(zhí)行該執(zhí)行該內(nèi)部函數(shù)內(nèi)部函數(shù)當(dāng)前目錄中有當(dāng)前目錄中有china.m??jī)?nèi)聯(lián)函數(shù)??jī)?nèi)聯(lián)函數(shù)?搜索路徑中有搜索路
15、徑中有china.m?否否執(zhí)行該執(zhí)行該M文件文件執(zhí)行該執(zhí)行該M文件文件報(bào)錯(cuò)!報(bào)錯(cuò)!子函數(shù)?子函數(shù)?私有函數(shù)?私有函數(shù)?執(zhí)行該執(zhí)行該M文件文件是是是是是是是是是是否否否否.412 MATLAB程序設(shè)計(jì)原則和技巧程序設(shè)計(jì)原則和技巧1、后面的內(nèi)容是程序的注解,要善于運(yùn)用注解使程序更具可讀性。2、養(yǎng)成在主程序開頭用clear指令清除變量的習(xí)慣,以消除工作空間中其他變量對(duì)程序運(yùn)行的影響。但注意在子程序中不要用clear。3、參數(shù)值要集中放在程序的開始部分,以便維護(hù)。要充分利用MATLAB工具箱提供的指令來執(zhí)行所要進(jìn)行的運(yùn)算,在語句行之后輸入分號(hào)使其及中間結(jié)果不在屏幕上顯示,以提高執(zhí)行速度。.424、程序
16、盡量模塊化,也就是采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來執(zhí)行全部的操作。5、充分利用Debugger來進(jìn)行程序的調(diào)試(設(shè)置斷點(diǎn)、單步執(zhí)行、連續(xù)執(zhí)行)6、設(shè)置好MATLAB的工作路徑,以便程序運(yùn)行。.43 1. 矢量化盡可能使用向量和矩陣操作 1000000)3121(kkk例例 求求t=cputime;s=0;for i=1:100000 s=s+(1/2i+1/3i); endcputime-tans = 向量運(yùn)算向量運(yùn)算t=cputime;n=1:100000; s=sum(1./2.n+1./3.n);cputime-tans =.44w陣列預(yù)分配 陣列矩陣的初始化工作;在
17、成熟規(guī)范的商業(yè)軟件里必不可少,同時(shí)也是一個(gè)良好的編程素養(yǎng)的體現(xiàn)。變量管理 matlab中的變量類型是不需要預(yù)先定義的,編程過程中不要改變變量的使用類型。 例如chardouble, realcomplex x=23; 程序,x=A4 .盡量使用MATLAB內(nèi)部定義的函數(shù).45本節(jié)內(nèi)容是需上機(jī)應(yīng)用的重點(diǎn)內(nèi)容。程序出錯(cuò)主要為兩類: 1、語法錯(cuò)誤 如缺(或)等,在運(yùn)行時(shí)可檢測(cè)出大多數(shù)該類錯(cuò)誤,并指出錯(cuò)在哪一行。 2、算法錯(cuò)誤 邏輯上的錯(cuò)誤,不易查找,遇到此類錯(cuò)誤時(shí)需耐心。一般可考慮如下方法:直接調(diào)試法和工具調(diào)試法.46 直接調(diào)試法是指在利用matlab的相關(guān)指令對(duì)程序進(jìn)行調(diào)試。 主要方法有: 刪除句
18、尾分號(hào)和利用disp語句,顯示中間結(jié)果; 在適當(dāng)位置加上keyboard語句,使程序暫停; 在函數(shù)定義行之前加上%注釋,使之變成腳本語言; 利用echo指令,使運(yùn)行時(shí)在屏幕上逐行顯示文件內(nèi)容。 Ctrl+C強(qiáng)行停止程序直接調(diào)試法直接調(diào)試法.47直接調(diào)試法一些輔助函數(shù):o常用指令:return, echo, input, pause, keyboard, break; echo命令可以使文件命令在執(zhí)行時(shí)可見,這對(duì)程序的 調(diào)試和演示很有用。 keyboard請(qǐng)求鍵盤輸入命令 pause等待用戶反映命令o警告命令:error, warning.lasterr,lastwarn,o提示命令:warnd
19、lg,errordlg.48工具調(diào)試法工具調(diào)試法 工具調(diào)試法是指利用matlab的相關(guān)調(diào)試工具對(duì)程序進(jìn)行調(diào)試 調(diào)試步驟為:(1)(1)在程序可疑處設(shè)置斷點(diǎn);在程序可疑處設(shè)置斷點(diǎn);(2)(2)執(zhí)行程序;執(zhí)行程序;(3)(3)檢查程序運(yùn)行至斷點(diǎn)處變檢查程序運(yùn)行至斷點(diǎn)處變 量當(dāng)前值量當(dāng)前值(4)(4)在程序中一步步執(zhí)行在程序中一步步執(zhí)行(5)(5)結(jié)束調(diào)試狀態(tài)。結(jié)束調(diào)試狀態(tài)。(6)(6)取消斷點(diǎn)。取消斷點(diǎn)。.491Debug菜單項(xiàng) 該菜單項(xiàng)用于程序調(diào)試,需要與Breakpoints菜單項(xiàng)配合使用。 Step:?jiǎn)尾竭\(yùn)行 Step In:?jiǎn)尾竭\(yùn)行,調(diào)用函數(shù)時(shí)進(jìn)入函數(shù)程序 Step Out: Run:運(yùn)行
20、 Go Until Cursor:運(yùn)行到光標(biāo)處工具調(diào)試法工具調(diào)試法調(diào)試菜單項(xiàng)調(diào)試菜單項(xiàng).502Breakpoints菜單項(xiàng)(matlab7.0以上菜單內(nèi)容在Debug菜單中包括)Set/Clear Breakpoint:設(shè)置/清除斷點(diǎn) Set/Modify Conditional Breakpoint:設(shè)置條件斷點(diǎn) Enable/Disable Breakpoint:使能斷點(diǎn) Clear Breakpoint in All Files:清除斷點(diǎn) Stop if Errors/Warnings:錯(cuò)誤停止條件設(shè)置設(shè)置條件斷點(diǎn)時(shí)注意光標(biāo)的位置.51設(shè)置錯(cuò)誤停止條件設(shè)置條件斷點(diǎn).52常見錯(cuò)誤o中英文輸入法未注意o習(xí)慣用i,j作為變量o變量名同函數(shù)名文件名相同o搜索路徑設(shè)置不當(dāng).53o5.2.1 在高數(shù)中的應(yīng)用在高數(shù)中的應(yīng)用o5.2.2 在線性代數(shù)中的應(yīng)用在線性代數(shù)中的應(yīng)用o5.2.3 在普通物理中的應(yīng)用在普通物理中的應(yīng)用o5.2.4 在電路中的應(yīng)用在電路中的應(yīng)用.54o函數(shù)的傅立葉級(jí)數(shù)函數(shù)的傅立葉級(jí)數(shù)10)sin()cos(2)(kkkkxbkxaaxsdxkxxfbdxkxxfakk)sin()(1)cos()(1.55程序?qū)崿F(xiàn):程序?qū)崿F(xiàn):function s=mfourier(f,n)syms x a b cs=int(f,-pi,pi)/(2*pi) %計(jì)算a0for k=
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆維吾爾自治區(qū)七年級(jí)上學(xué)期語文第一次月考試卷
- 一年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)
- 花圃合作協(xié)議書(2篇)
- 南京航空航天大學(xué)《傳感器與測(cè)試技術(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《土木工程與環(huán)境》2022-2023學(xué)年第一學(xué)期期末試卷
- 南京工業(yè)大學(xué)浦江學(xué)院《商務(wù)技能》2022-2023學(xué)年第一學(xué)期期末試卷
- 分草莓說課稿
- 南京工業(yè)大學(xué)浦江學(xué)院《汽車電氣設(shè)備》2022-2023學(xué)年第一學(xué)期期末試卷
- 《有理數(shù)的乘法》說課稿
- 2024-2030年組氨酸行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 教育信息化教學(xué)資源建設(shè)規(guī)劃
- 屠宰場(chǎng)食品安全管理制度
- 部編版(2024秋)語文一年級(jí)上冊(cè) 6 .影子課件
- 2024秋期國(guó)家開放大學(xué)??啤缎淌略V訟法學(xué)》一平臺(tái)在線形考(形考任務(wù)一至五)試題及答案
- 病例討論英文
- 2024秋期國(guó)家開放大學(xué)??啤兑簤号c氣壓傳動(dòng)》一平臺(tái)在線形考(形考任務(wù)+實(shí)驗(yàn)報(bào)告)試題及答案
- 【課件】植物體的結(jié)構(gòu)層次課件-2024-2025學(xué)年人教版生物七年級(jí)上冊(cè)
- 24秋國(guó)家開放大學(xué)《0-3歲嬰幼兒的保育與教育》期末大作業(yè)參考答案
- 相對(duì)濕度計(jì)算公式
- 7.1促進(jìn)民族團(tuán)結(jié) (課件) 2024-2025學(xué)年九年級(jí)道德與法治上冊(cè) (統(tǒng)編版)
評(píng)論
0/150
提交評(píng)論