實(shí)驗(yàn)3:MATLAB編程基礎(chǔ).doc_第1頁(yè)
實(shí)驗(yàn)3:MATLAB編程基礎(chǔ).doc_第2頁(yè)
實(shí)驗(yàn)3:MATLAB編程基礎(chǔ).doc_第3頁(yè)
實(shí)驗(yàn)3:MATLAB編程基礎(chǔ).doc_第4頁(yè)
實(shí)驗(yàn)3:MATLAB編程基礎(chǔ).doc_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)驗(yàn)三 MATLAB編程基礎(chǔ)【實(shí)驗(yàn)?zāi)康摹?、學(xué)習(xí)和掌握M文件的創(chuàng)建與使用; 2、學(xué)習(xí)和掌握MATLAB軟件程序的控制結(jié)構(gòu)與語(yǔ)句;3、學(xué)習(xí)簡(jiǎn)單編程;【實(shí)驗(yàn)內(nèi)容、方法與步驟】一、M文件M文件有兩種形式:命令文件和M函數(shù)文件。它們都是由若干MATLAB語(yǔ)句或命令組成的文件。兩種文件的擴(kuò)展名都是.m。要注意的是M文件名一定以字母開(kāi)頭,而且最好不要與內(nèi)置函數(shù)重名。在M文件中,當(dāng)表達(dá)式后面接分號(hào)時(shí),表達(dá)式的計(jì)算結(jié)果雖不顯示但中間結(jié)果仍保存在內(nèi)存中。若程序?yàn)槊钗募瑒t程序執(zhí)行完以后,中間變量仍予以保留;若程序?yàn)楹瘮?shù)文件,則程序執(zhí)行完以后,中間變量被全部刪除。1、文件的操作MATLAB 對(duì)文件的打開(kāi)、關(guān)閉和保存等操作與Word完全類似。在MATLAB中新建M文件的操作是在命令窗口中選擇File|New|M-File,然后用鼠標(biāo)單擊M-File,可以打開(kāi)MATLAB自帶的“M函數(shù)與M文件編輯器”(見(jiàn)圖2.4),用戶可以在此編輯窗口來(lái)編輯一個(gè)新的M文件。MATLAB自帶的“M函數(shù)與M文件編輯器”還可以用來(lái)對(duì)已經(jīng)存在的M文件進(jìn)行編輯、存儲(chǔ)、修改和讀取。2、命令文件命令文件的一般形式為: .m如a1.m, pp.m等都是合法的M文件名。M文件有兩種運(yùn)行方式:一是在命令窗口直接寫(xiě)文件名,按Enter鍵; 二是在編輯窗口打開(kāi)菜單Debug,再單擊Run。M文件保存的路徑一定要在搜索路徑上,否則M文件不能運(yùn)行。【例1】 用M命令文件畫(huà)出衰減振蕩曲線及其它的包絡(luò)線。的取值范圍是。解:步驟: 1.打開(kāi)MATLAB命令窗口,單擊File|New|M-file打開(kāi)M文件編輯器窗口; 2.在編輯窗口逐行寫(xiě)下列語(yǔ)句;t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,-r,t,y0,:b,t,-y0,:b)3.保存M文件,并且保存在搜索路徑上,文件名為a1.m;4.運(yùn)行M文件。在MATLAB命令窗口寫(xiě)a1,并按Enter鍵,或者在M文件編輯器編輯窗口打開(kāi)菜單Debug,再單擊Run,即可得到下列衰減振蕩曲線與包絡(luò)的圖4 3、M函數(shù)文件 M函數(shù)文件的一般形式為:function =() M函數(shù)文件可以有多個(gè)因變量和多個(gè)自變量,當(dāng)有多個(gè)因變量時(shí)用括起來(lái)。為了更好的理解函數(shù)文件,請(qǐng)看下例:【例2】設(shè)可逆方陣為A,編寫(xiě)同時(shí)求的M函數(shù)文件。解:步驟: 1.打開(kāi)MATLAB命令窗口,單擊File|New|M-file,打開(kāi)M文件編輯器編輯窗口; 2.在編輯窗口逐行寫(xiě)下列語(yǔ)句;function da,a2,inva,traa=comp4(x)%M函數(shù)文件comp4.m同時(shí)求矩陣x的四個(gè)值%da為矩陣x的行列式%a2為矩陣x的平方%inva為矩陣x的逆矩陣%traa為矩陣x的轉(zhuǎn)置da=det(x)a2=x2inva=inv(x)traa=x3.保存M函數(shù)文件,并且保存在搜索路徑上,文件名為comp4.m;4窗口執(zhí)行下列語(yǔ)句:A=1,2;5,8; %輸入矩陣A。comp4(A) %調(diào)用comp4.m函數(shù),計(jì)算矩陣A的。da = -2a2 = 11 18 45 74inva = -4.0000 1.0000 2.5000 -0.5000traa = 1 5 2 8二、程序的控制結(jié)構(gòu)與語(yǔ)句與其他程序設(shè)計(jì)語(yǔ)言相似,Matlab程序的控制結(jié)構(gòu)也分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種,其控制語(yǔ)句主要有if,for,while和switch。在這些結(jié)構(gòu)中,包含大量的Matlab命令,故經(jīng)常將它們存儲(chǔ)在M文件中。(一)順序結(jié)構(gòu)根據(jù)語(yǔ)句的書(shū)寫(xiě)順序,從上到下一行一行地執(zhí)行,直到所有的語(yǔ)句執(zhí)行完畢后則結(jié)束程序的執(zhí)行。如:x=2;y=x+2;x=x+1;y=4 %輸出y的結(jié)果x=3 %輸出x的結(jié)果(二)選擇結(jié)構(gòu)與if-else-end語(yǔ)句選擇結(jié)構(gòu)是指由if 語(yǔ)句組成的程序,它根據(jù)邏輯表達(dá)式的值來(lái)決定語(yǔ)句是否被執(zhí)行。選擇結(jié)構(gòu)主要有以下3種形式:1、一個(gè)選擇條件if expression(表達(dá)式) commands(執(zhí)行語(yǔ)句) end 功能:如果表達(dá)式的值為真,就執(zhí)行語(yǔ)句,否則執(zhí)行end后面的語(yǔ)句.2、兩個(gè)選擇條件if expression(表達(dá)式) commands1(執(zhí)行語(yǔ)句1) elsecommands2(執(zhí)行語(yǔ)句2) end 功能:如果表達(dá)式的值為真,就執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2.3、三個(gè)或更多的選擇條件if expression1(表達(dá)式1) commands1(執(zhí)行語(yǔ)句1) else if expression2(表達(dá)式2) commands2(執(zhí)行語(yǔ)句2) else commands3(執(zhí)行語(yǔ)句3) endend 功能:如果表達(dá)式1的值為真,就執(zhí)行語(yǔ)句1,然后跳出if執(zhí)行語(yǔ)句;否則判斷表達(dá)式2,如果表達(dá)式2的值為真,就執(zhí)行語(yǔ)句2,然后跳出if執(zhí)行語(yǔ)句.否則依此類推,一直進(jìn)行下去.如果所有的表達(dá)式的值都為假,就執(zhí)行end后面的語(yǔ)句.【例3】 設(shè)函數(shù),編寫(xiě)M函數(shù),并計(jì)算函數(shù)值。解:(1)建立M函數(shù)文件yx.m。function y=yx(x)if x=1 & x10 & x=30 y=3*x-11else y=sin(x)+log(x)endendend(2)調(diào)用M函數(shù)文件,計(jì)算。result=yx(0.2),yx(2),yx(30),yx(10*pi) result = 0.2000 3.0000 79.0000 3.44734、switch-case-end分支除了if 語(yǔ)句之外,mMatlab還提供了switch語(yǔ)句實(shí)現(xiàn)三個(gè)或更多的選擇條件的程序結(jié)構(gòu)。其格式如下: switch expression(表達(dá)式) case value1(常量表達(dá)式1) commands1(語(yǔ)句塊1) case value2(常量表達(dá)式2) commands2(語(yǔ)句塊2) case value n(常量表達(dá)式n) commands n (語(yǔ)句塊n)otherwisecommands n+1 (語(yǔ)句塊n+1)end 功能:當(dāng)邏輯表達(dá)式expression的值為“value1”時(shí),則執(zhí)行語(yǔ)句塊1(commands1);當(dāng)邏輯表達(dá)式expression的值為“value2”時(shí),則執(zhí)行語(yǔ)句塊2(commands2);以此類推。若以上均不滿足時(shí),則執(zhí)行語(yǔ)句塊n+1(commands n+1)。與if語(yǔ)句不同的是,各個(gè)case 和otherwise 語(yǔ)句出現(xiàn)的先后順序不會(huì)影響程序運(yùn)行的結(jié)果。【例4】編一個(gè)轉(zhuǎn)換成績(jī)等級(jí)的函數(shù)文件,其中成績(jī)等級(jí)轉(zhuǎn)換標(biāo)準(zhǔn)為考試成績(jī)分?jǐn)?shù)在90,100分顯示優(yōu)秀;在80,90)分顯示良好;在60,80)分顯示及格;在0,60)分顯示不及格。解:(1)建立M函數(shù)文件ff.m function result=ff(x) n=fix(x/10); switch n case 9,10 disp(優(yōu)秀) case 8 disp(良好)case 6,7 disp(及格)otherwise disp(不及格)end (2)調(diào)用M函數(shù)文件判斷99分,56分,72分各屬于哪個(gè)范圍。ff(99) 優(yōu)秀ff(56) 不及格ff(72) 及格(三)循環(huán)結(jié)構(gòu)、for循環(huán)、while循環(huán)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語(yǔ)句有兩種:for循環(huán)和while循環(huán)1、for循環(huán)語(yǔ)句 for循環(huán)允許一組命令以固定的或預(yù)定的次數(shù)重復(fù),它的一般形式為: for i=(初值):(步長(zhǎng)):(終值)commands(執(zhí)行語(yǔ)句1).commands(執(zhí)行語(yǔ)句n) end其中,步長(zhǎng)為1時(shí)可以省略,commands稱為循環(huán)體。for循環(huán)的循環(huán)體中,可以多次嵌套for和其它的結(jié)構(gòu)體。for循環(huán)語(yǔ)句的執(zhí)行過(guò)程為:首先循環(huán)變量x取初值,執(zhí)行完所有的循環(huán)體語(yǔ)句后,x=x+步長(zhǎng),并判斷x是否超過(guò)終值,若未超過(guò),則繼續(xù)執(zhí)行循環(huán)體中的所有語(yǔ)句;否則,退出循環(huán),執(zhí)行end的后續(xù)語(yǔ)句。【例5】利用for循環(huán)求1100的整數(shù)之和。解:(1) 建立命令文件exam1.m%利用for循環(huán)求1100的整數(shù)之和sum=0;for i=1:100 sum=sum+i; endsum(2) 執(zhí)行命令文件exam1.mexam1sum = 50502、while循環(huán)語(yǔ)句與for循環(huán)以固定次數(shù)執(zhí)行一組命令相反,while循環(huán)以不定的次數(shù)執(zhí)行一組語(yǔ)句。其一般格式為while expression(表達(dá)式) commands(循環(huán)體語(yǔ)句)end說(shuō)明:表達(dá)式一般是由邏輯運(yùn)算和關(guān)系運(yùn)算以及一般的運(yùn)算組成的表達(dá)式,以判斷循環(huán)要繼續(xù)進(jìn)行還是要停止循環(huán)。只要表達(dá)式的值非零,即為邏輯為“真“,程序就繼續(xù)循環(huán),只要表達(dá)式的值為零就停止循環(huán)。【例6】 利用while循環(huán)來(lái)計(jì)算1!+2!+50!的值。解: (1)建立命令文件exam3.m %利用while循環(huán)來(lái)計(jì)算1!+2!+.+50!的值sum=0;i=1;while i51 prd=1; j=1; while j=i prd=prd*j; j=j+1; end sum=sum+prd; i=i+1;enddisp(1!+2!+.+50!的和為:)sum(2) 執(zhí)行命令文件exam3.m。 exam31!+2!+.+50!的和為:sum = 2.5613e+018【例7】設(shè)銀行年利率為4.14%.將10000元錢存入銀行,問(wèn)多長(zhǎng)時(shí)間會(huì)連本帶利翻一番?解: (1)建立命令文件while.mmoney=10000years=0while money=k+1 disp(int2str(m) %以字符串的形式顯示素?cái)?shù). end end(2) 執(zhí)行命令文件exam2.m。exam2101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199說(shuō)明:break語(yǔ)句能在for循環(huán)和while循環(huán)中退出循環(huán),繼續(xù)執(zhí)行循環(huán)后面的命令。三、程序調(diào)試和錯(cuò)誤處理對(duì)于編程者來(lái)說(shuō),程序運(yùn)行出現(xiàn)錯(cuò)誤是在所難免的。在大規(guī)模、多人共同參與的情況下,掌握程序調(diào)試的方法和技巧對(duì)提高工作效率很重要。一般來(lái)說(shuō),錯(cuò)誤分兩種,即語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤。語(yǔ)法錯(cuò)誤一般是變量名與函數(shù)名的誤寫(xiě)、標(biāo)點(diǎn)符號(hào)的缺漏和end的漏寫(xiě)等。對(duì)于這類錯(cuò)誤,MATLAB在運(yùn)行中一般都能發(fā)現(xiàn),終止執(zhí)行并報(bào)錯(cuò),編程者一般很容易發(fā)現(xiàn)并糾正。而邏輯錯(cuò)誤可能是程序本身的算法問(wèn)題,也可能是MATLAB的指令使用不當(dāng),導(dǎo)致最終的結(jié)果與預(yù)期值偏離,這種錯(cuò)誤發(fā)生在運(yùn)行過(guò)程中,影響因素比較多,而這時(shí)函數(shù)的工作空間已被刪除,調(diào)試起來(lái)比較困難。下面介紹程序的常見(jiàn)調(diào)試方法。1、用“Debug”菜單進(jìn)行調(diào)試“Debug”菜單下各個(gè)子項(xiàng)的含義如下:(1)Step:在調(diào)試模式下,執(zhí)行M文件的當(dāng)前行,對(duì)應(yīng)的快捷鍵是F10.(2)Step In:在調(diào)試模式下,執(zhí)行M文件的當(dāng)前行,如果M文件的當(dāng)前行調(diào)用了另一個(gè)函數(shù),那么進(jìn)入該函數(shù)內(nèi)部,對(duì)應(yīng)的快捷鍵是F11.(3)Step Out:在當(dāng)前模式下執(zhí)行Step In進(jìn)入某一個(gè)函數(shù)內(nèi)部之后,執(zhí)行Step Out可以完成函數(shù)剩余部分的所有代碼,并退出函數(shù),暫停在進(jìn)入函數(shù)內(nèi)部前的M文件所在行末尾。(4)Run:運(yùn)行當(dāng)前M文件,對(duì)應(yīng)的快捷鍵是F5;當(dāng)前M文件設(shè)置了斷電時(shí),然后運(yùn)行到斷電后暫停。(5)Go Until Cursor:運(yùn)行當(dāng)前M文件到光標(biāo)所在行尾。需要注意的是,以上這些調(diào)試項(xiàng),除了Run都需要首先在M文件中設(shè)置斷點(diǎn),然后Run運(yùn)行到斷電位置后,這些調(diào)試項(xiàng)才可啟用。(6)Set/Clear Breakpoint:在光標(biāo)所在行開(kāi)頭設(shè)置或清除斷點(diǎn)。(7)Set/Modify Conditional Breakpoint.:在光標(biāo)所在行開(kāi)頭設(shè)置或修改條件斷點(diǎn),選擇此子項(xiàng),會(huì)打開(kāi)條件斷點(diǎn)設(shè)置對(duì)話框,用于設(shè)置在滿足什么條件時(shí)此處斷點(diǎn)有效。(8)Enable/Disable Breakpoint:將當(dāng)前行的斷點(diǎn)設(shè)置為有效或無(wú)效。(9)Clear Breakpoint in all files:清除M文件中的斷點(diǎn)。(10)Stop if Errors/Warninggs:設(shè)置出現(xiàn)某種運(yùn)行錯(cuò)誤或警告時(shí),停止程序運(yùn)行,選擇此子項(xiàng),會(huì)打開(kāi)錯(cuò)誤、警告設(shè)置對(duì)話框。(11)Exit Debug Mode:退出調(diào)試模式。 通常的調(diào)試過(guò)程:先點(diǎn)擊“Run”按鈕,運(yùn)行一遍M文件,針對(duì)系統(tǒng)給出的具體的出錯(cuò)信息,在適當(dāng)?shù)牡胤皆O(shè)置斷點(diǎn)或條件斷點(diǎn),在此運(yùn)行到斷點(diǎn)位置,此時(shí)MATLAB把運(yùn)行控制權(quán)交給鍵盤,命令窗

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論