Matlab_learning_3_第1頁(yè)
Matlab_learning_3_第2頁(yè)
Matlab_learning_3_第3頁(yè)
Matlab_learning_3_第4頁(yè)
Matlab_learning_3_第5頁(yè)
已閱讀5頁(yè),還剩43頁(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)介

1、Matlab軟件與基礎(chǔ)數(shù)學(xué)實(shí)驗(yàn)軟件與基礎(chǔ)數(shù)學(xué)實(shí)驗(yàn) MATLAB編程介紹與循環(huán)結(jié)構(gòu)編程介紹與循環(huán)結(jié)構(gòu) MATLAB中每一個(gè)命令都是一個(gè)命令都是一個(gè)M-文件。文件。 MATLAB中各種命令可以完成許多單一的任務(wù),對(duì)于命令可以完成許多單一的任務(wù),對(duì)于某些較為復(fù)雜的問(wèn)題,僅靠現(xiàn)有的命令或函數(shù)來(lái)解決,往某些較為復(fù)雜的問(wèn)題,僅靠現(xiàn)有的命令或函數(shù)來(lái)解決,往往是難以達(dá)到目的往是難以達(dá)到目的 。為此,要運(yùn)用。為此,要運(yùn)用MATLAB編程語(yǔ)言編編程語(yǔ)言編制程序,形成制程序,形成M-文件。文件。 程序是使計(jì)算機(jī)完成各項(xiàng)運(yùn)算的命令集,運(yùn)行一個(gè)編程序是使計(jì)算機(jī)完成各項(xiàng)運(yùn)算的命令集,運(yùn)行一個(gè)編制好的程序,計(jì)算機(jī)會(huì)從第一條

2、命令行開(kāi)始,一行接一行制好的程序,計(jì)算機(jī)會(huì)從第一條命令行開(kāi)始,一行接一行地執(zhí)行相應(yīng)的命令,直到終止。地執(zhí)行相應(yīng)的命令,直到終止。 MATLAB作為一種高級(jí)語(yǔ)言,不但可以以命令行的方式完成操作,而且可以像大多數(shù)程序語(yǔ)言一樣具有結(jié)構(gòu)控制語(yǔ)句、輸入輸出語(yǔ)句和面向?qū)?MATLAB程序(又稱(chēng)為M-文件)有兩種形式,一種是可直接運(yùn)行的命令文件,另一種是可供調(diào)用的函數(shù)文件,這兩種文件的擴(kuò)展名相同,均為“.m”,故稱(chēng)為M-文件。象編程的能力。 MATLAB編程介紹編程介紹 MATLAB程序編輯是在編輯窗口(MATLAB Editor/Debugger)中進(jìn)行,程序運(yùn)行結(jié)果或錯(cuò)誤信息顯示在在命令窗口(Comma

3、nd Windows)中。1 1 、編寫(xiě)、編寫(xiě)M-M-文件的步驟文件的步驟(1)打開(kāi)程序編輯窗口: 點(diǎn)擊MATLAB命令窗口工具條上的New File圖標(biāo),或點(diǎn)擊命令窗口中的File菜單菜單,點(diǎn)擊選項(xiàng)中的New,選擇M-file, 就可打開(kāi)MATLAB程序編輯窗口(MATLAB Editor/Debugger),用戶可在窗口中編寫(xiě)、修改程序。(2)保存編寫(xiě)的程序:在程序編寫(xiě)過(guò)程中,或程序編寫(xiě)完成后,點(diǎn)擊工具條上的Save圖標(biāo),或按F2鍵,再選擇文件夾:MatlabWork,輸入自己定義的文件名,點(diǎn)擊保存保存文件,保存后文件名后自動(dòng)加上“.m”后綴,即為M-文件。注意:注意: 文件名要以字母開(kāi)頭

4、中間不含空格和標(biāo)點(diǎn)符號(hào)且不超過(guò)文件名要以字母開(kāi)頭中間不含空格和標(biāo)點(diǎn)符號(hào)且不超過(guò)8個(gè)字符個(gè)字符;不能用數(shù)字和專(zhuān)用變量名作為文件名,如1,11,pi,ans,eps等。 程序通常保存在文件夾:MatlabWork中,此路徑為MATLAB軟件默認(rèn)路徑。 程序若要存放到其它文件夾中,則要添加該路徑到MATLAB的路徑設(shè)置中,否則程序不能連接執(zhí)行。 點(diǎn)擊編輯窗工具條上點(diǎn)擊編輯窗工具條上FileFile菜單,選擇菜單,選擇Set Path.Set Path.,此時(shí)打開(kāi)路徑設(shè)置窗口,再點(diǎn)擊此時(shí)打開(kāi)路徑設(shè)置窗口,再點(diǎn)擊Add Add FoiderFoider.,選擇你,選擇你所使用的文件夾(若沒(méi)有則要先新建)

5、,選定后該路徑所使用的文件夾(若沒(méi)有則要先新建),選定后該路徑自動(dòng)顯示在列表的第一行或最后一行,再點(diǎn)擊自動(dòng)顯示在列表的第一行或最后一行,再點(diǎn)擊Save Save 保存保存即可。即可。具體操作:具體操作:2 2、 運(yùn)行運(yùn)行M-M-文件文件 運(yùn)行一個(gè)已經(jīng)編寫(xiě)好且存盤(pán)的M-文件有兩種方法: 在MATLAB編輯窗口中對(duì)正在編輯的M-文件,保存后可直接點(diǎn)擊工具條上的Debug中的Run命令運(yùn)行或按F5鍵鍵,即可運(yùn)行當(dāng)前程序,其運(yùn)行結(jié)果或信息顯示在命令窗口,此時(shí),用戶可以切換到命令窗口進(jìn)行查看,之后可回到編輯窗對(duì)程序進(jìn)行修改、重新保存再次運(yùn)行。方法一:方法一: 在MATLAB命令窗口中直接輸入文件名回車(chē),

6、即可運(yùn)行相應(yīng)的M-文件。其運(yùn)行結(jié)果或程序運(yùn)行中的錯(cuò)誤信息等顯示在命令窗口,此時(shí),用戶若要修改程序則可以切換到編輯窗口進(jìn)行修改,修改后重新保存。方法二:方法二: 當(dāng)對(duì)程序進(jìn)行修改保存時(shí),當(dāng)前程序?qū)⒏采w原來(lái)程序,此時(shí)若要想保存為另外的文件,則要點(diǎn)擊工具條上File菜單菜單,選擇Save as.,另取文件名保存即可。注意注意:例例1、 分別建立命令文件和函數(shù)文件,將華氏溫度分別建立命令文件和函數(shù)文件,將華氏溫度f(wàn)轉(zhuǎn)換轉(zhuǎn)換為攝氏溫度為攝氏溫度c。首先建立命令文件并以文件名首先建立命令文件并以文件名yy1.m存盤(pán)。存盤(pán)。clear; %清除工作空間中的變量清除工作空間中的變量f=input(Input

7、Fahrenheit temperature:);c=5*(f-32)/9然后在然后在MATLAB的命令窗口中輸入的命令窗口中輸入yy1,將會(huì)執(zhí)行,將會(huì)執(zhí)行該命令文件,執(zhí)行情況為:該命令文件,執(zhí)行情況為:Input Fahrenheit temperature:73c = 22.7778程序程序1:首先建立函數(shù)文件首先建立函數(shù)文件yy2.m。function c=yy2(f)c=5*(f-32)/9然后在然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。的命令窗口調(diào)用該函數(shù)文件。clear;y=input(Input Fahrenheit temperature:);x=yy2(y)輸出情況為:輸出

8、情況為:Input Fahrenheit temperature:70c = 21.1111x = 21.1111程序程序2: MATLABMATLAB程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu) MATLAB提供了三種基本的程序結(jié)構(gòu):順序結(jié)構(gòu)順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)選擇結(jié)構(gòu)。一個(gè)MATLAB程序就是使計(jì)算機(jī)實(shí)現(xiàn)某一類(lèi)功能任務(wù)的命令集。用戶編制程序時(shí),需要按照解決問(wèn)題的邏輯步驟和求解算法,用MATLAB的語(yǔ)句和函數(shù),按照三種基本結(jié)構(gòu)逐條編寫(xiě),一般一行一條語(yǔ)句,便于調(diào)試和查找錯(cuò)誤。其中功能處理部分是核心,主要是根據(jù)處理問(wèn)題的邏輯步驟,采用循環(huán)迭加、判斷推理、分步計(jì)算等來(lái)解決問(wèn)題。程序一般包含三個(gè)部分

9、:程序一般包含三個(gè)部分:數(shù)據(jù)輸入、功能處理、結(jié)果輸出數(shù)據(jù)輸入、功能處理、結(jié)果輸出 程序編寫(xiě)完成后,需要存盤(pán),形成永久性文件,程序編寫(xiě)完成后,需要存盤(pán),形成永久性文件,之后可以隨時(shí)對(duì)它進(jìn)行調(diào)用或修改之后可以隨時(shí)對(duì)它進(jìn)行調(diào)用或修改。 M-文件中的輸入、輸出方式文件中的輸入、輸出方式1、 輸入方式輸入方式s=Any string!; %輸入字符串(1)程序中直接賦值)程序中直接賦值x=2; %輸入單個(gè)值a=1,2,3;4,5,6;7,8,0; %輸入矩陣(a為3階方陣)(2)程序運(yùn)行時(shí)賦值)程序運(yùn)行時(shí)賦值變量 = input( 提示符號(hào)串 );格式格式:功能:功能: 從鍵盤(pán)接收數(shù)據(jù)并賦予等號(hào)左邊變量

10、。其中 提示符號(hào)串 是在命令窗口中的提示。 y=input(Please input y=); %提示語(yǔ)句輸入如:如:x=input( x=); 當(dāng)執(zhí)行到此語(yǔ)句時(shí),暫停程序運(yùn)行,在命令窗口中光標(biāo)將停留在提示符號(hào)串后閃爍,等待從鍵盤(pán)接收數(shù)據(jù)。用戶從鍵盤(pán)輸入數(shù)據(jù)并按回車(chē)鍵確認(rèn),繼續(xù)程序運(yùn)行。其優(yōu)點(diǎn)是每次運(yùn)行可以輸入不同數(shù)據(jù),實(shí)現(xiàn)人機(jī)對(duì)話。 如果在input函數(shù)調(diào)用時(shí)采用s選項(xiàng),則允許用戶輸入一個(gè)字符串。例如,想輸入一個(gè)人的姓名,可采用命令:xm=input(Whats your name?,s);2、 輸出方式輸出方式(1)直接輸出)直接輸出 x %變量后無(wú)分號(hào)“;”,變量直接輸出disp(a);

11、 % a可以是矩陣、數(shù)組和單個(gè)值(2)格式控制輸出()格式控制輸出(fprintf命令)命令)fprintf(x=%.3f y=%.0fn , a,b); %按指定格式輸出格式格式: 其中,單引號(hào)內(nèi)為格式說(shuō)明符:%前為提示符,%.3f為數(shù)據(jù)格式符,通常與單引號(hào)后面的數(shù)據(jù)相對(duì)應(yīng), f指顯示一實(shí)數(shù),.3表示顯示的數(shù)小數(shù)點(diǎn)后3位,小數(shù)點(diǎn)前整數(shù)部分不限。 %.0f指顯示一實(shí)數(shù)其小數(shù)部分顯示0位,結(jié)果只顯示整數(shù)部分。n為換行命令符,即一行顯示結(jié)束后,光標(biāo)自動(dòng)換到下一行。a,b為要顯示的變量,它們與前面的格式符相對(duì)應(yīng)。例例: fprintf(x=%.5f y=%.0fn, pi, sqrt(2);結(jié)果為:

12、結(jié)果為: x=3.14159 y=1fprintf(x=%.5f y=%.0fn, sqrt(2) ,pi);結(jié)果為:結(jié)果為: x=1.41412 y=3 x=input(Input x please.); y=input(Input y please.); z=x; x=y; y=z; disp(x); disp(y);例例:輸入x,y的值,并將它們的值互換后輸出。a=input(a=);b=input(b=);c=input(c=);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num

13、2str(x(2);例:例:求一元二次方程求一元二次方程ax2 +bx+c=0的根。的根。a=1b=2c=3x1=-1+1.4142i,x2=-1-1.4142i結(jié)果為:結(jié)果為: 若要強(qiáng)行中止程序的運(yùn)行可使用若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。命令。3、程序的暫停、程序的暫停暫停程序的執(zhí)行可以使用暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)用格式為函數(shù),其調(diào)用格式為:pause(延遲秒數(shù)延遲秒數(shù))如果省略延遲時(shí)間,直接使用如果省略延遲時(shí)間,直接使用pause,則將暫停程序,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。直到用戶按任一鍵后程序繼續(xù)執(zhí)行。MATLAB選擇結(jié)構(gòu)選擇結(jié)構(gòu)1、單項(xiàng)

14、選擇判斷(if-end)結(jié)構(gòu)格式格式: if (condition) commands-1; end commands-2;作用:作用: 若條件condition成立,則執(zhí)行commands-1,再順序執(zhí)行commands-2;否則,跳過(guò)commands-1,直接執(zhí)行commands-2.if (condition) commands-1; else commands-2;end (2) 雙分支雙分支if語(yǔ)句:語(yǔ)句: 當(dāng)條件成立時(shí),執(zhí)行語(yǔ)句組當(dāng)條件成立時(shí),執(zhí)行語(yǔ)句組1,否,否則執(zhí)行語(yǔ)句組則執(zhí)行語(yǔ)句組2,語(yǔ)句組,語(yǔ)句組1或語(yǔ)句組或語(yǔ)句組2執(zhí)執(zhí)行后,再執(zhí)行行后,再執(zhí)行if語(yǔ)句的后繼語(yǔ)句。語(yǔ)句的后繼

15、語(yǔ)句。例:例:求任意有限數(shù)組a=a(1),a(2),a(n) 中數(shù)值最大的元素M以及所在位置k.分析:分析: 這是一個(gè)求n個(gè)實(shí)數(shù)中最大(最?。?shù)的問(wèn)題,可以編制一個(gè)函數(shù)文件,隨時(shí)調(diào)用。首先可以假設(shè)最大數(shù)M=a(1),位置k=1;再?gòu)牡诙€(gè)數(shù)到最后一個(gè)數(shù)分別同M比較,取較大者為M,同時(shí)保留其位置。因此,運(yùn)用循環(huán)加判斷編制程序來(lái)實(shí)現(xiàn)。 function M,k=yy3(a) %定義函數(shù)yy3,輸入變量為數(shù)組a,返回值為最大元素M及位置kn=length(a); %獲取數(shù)組的長(zhǎng)度即元素的個(gè)數(shù)nM=a(1); k=1; %將第一個(gè)元素作為最大值賦值給M,位置為1;for i=2:n %從第二個(gè)元素到最

16、后一個(gè)元素依次進(jìn)行if a(i)M %比較后續(xù)元素與目前最大值M的大小M=a(i); k=i; %將數(shù)值較大的元素賦值給M,同時(shí)保留位置iend %選擇結(jié)構(gòu)結(jié)束end %循環(huán)結(jié)構(gòu)結(jié)束編寫(xiě)完成后以文件名yy3存盤(pán)(這里是函數(shù)命令程序)。此時(shí),MATLAB函數(shù)庫(kù)中多了個(gè)函數(shù)yy3.m,可進(jìn)行調(diào)用。在命令窗中試運(yùn)行如下: a=1,2.2,pi,-0.8,3.2,0; %任意給定一數(shù)組 M,k=yy3(a) %調(diào)用函數(shù)yy3M = 3.2000k = 52 、多項(xiàng)選擇判斷(、多項(xiàng)選擇判斷(if-else-end)結(jié)構(gòu))結(jié)構(gòu)格式:格式: if (condition1) commands-1; else

17、if (condition2) commands-2; else commands-3;end commands-4;作用作用 : 若條件condition1成立,則執(zhí)行commands-1,再轉(zhuǎn)向end,順序執(zhí)行后續(xù)的命令commands-4;否則判斷條件condition2是否成立,若成立,則執(zhí)行commands-2,再轉(zhuǎn)向end執(zhí)行后續(xù)的命令;若條件condition1和條件condition2均不成立,則執(zhí)行命令集commands-3,再順序向下執(zhí)行。例:例:編寫(xiě)一個(gè)函數(shù)將百分制成績(jī)轉(zhuǎn)換為優(yōu)(A),良(B),中(C),差(D)四等級(jí).分析:分析: 按照通常的等級(jí)劃分,一般90-100分

18、為優(yōu),78-89分為良,60-77分為中,60分以下的為差,因此,可以用多項(xiàng)選擇判斷結(jié)構(gòu)來(lái)實(shí)現(xiàn)。function jb=dengji(fs) %定義函數(shù)dengji,輸入變量為分?jǐn)?shù)fs,返回值為等級(jí)A,B,C,Dif fs=90 %判斷分?jǐn)?shù)fs是否處在優(yōu)秀級(jí)別上jb= A ; %定義為A級(jí)elseif fs=78 %判斷分?jǐn)?shù)fs是否處在良好級(jí)別上jb= B ; %定義為B級(jí)elseif fs=60 %判斷分?jǐn)?shù)fs是否處在合格級(jí)別上jb= C ; %定義為C級(jí)else %分?jǐn)?shù)fs不處于以上任何級(jí)別上jb= D ; %定義為D級(jí)end %選擇結(jié)構(gòu)結(jié)束 編寫(xiě)完成后以文件名dengji存盤(pán)。此時(shí),MA

19、TLAB函數(shù)庫(kù)中多了個(gè)函數(shù)dengji.m,可進(jìn)行調(diào)用。在命令窗中試運(yùn)行如下: jb=dengji(81) %調(diào)用函數(shù)dengji jb = B x=input(請(qǐng)輸入請(qǐng)輸入x的值的值:);if x=0 y= (x+sqrt(pi)/exp(2);else y=log(x+sqrt(1+x*x)/2;endY例:例: 計(jì)算分段函數(shù)的值。計(jì)算分段函數(shù)的值。3、switch語(yǔ)句語(yǔ)句 switch語(yǔ)句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語(yǔ)句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語(yǔ)句,其語(yǔ)句格式為:語(yǔ)句,其語(yǔ)句格式為:switch 表達(dá)式表達(dá)式 case 表達(dá)式表達(dá)式1 語(yǔ)句組語(yǔ)句組1 case 表達(dá)式

20、表達(dá)式2 語(yǔ)句組語(yǔ)句組2 case 表達(dá)式表達(dá)式m 語(yǔ)句組語(yǔ)句組m otherwise 語(yǔ)句組語(yǔ)句組n end 當(dāng)表達(dá)式的值等于表達(dá)式當(dāng)表達(dá)式的值等于表達(dá)式1的值時(shí),執(zhí)行語(yǔ)句組的值時(shí),執(zhí)行語(yǔ)句組1,當(dāng)表達(dá),當(dāng)表達(dá)式的值等于表達(dá)式式的值等于表達(dá)式2的值時(shí),執(zhí)的值時(shí),執(zhí)行語(yǔ)句組行語(yǔ)句組2,當(dāng)表達(dá)式的值,當(dāng)表達(dá)式的值等于表達(dá)式等于表達(dá)式m的值時(shí),執(zhí)行語(yǔ)句的值時(shí),執(zhí)行語(yǔ)句組組m,當(dāng)表達(dá)式的值不等于,當(dāng)表達(dá)式的值不等于case所列的表達(dá)式的值時(shí),執(zhí)行語(yǔ)句所列的表達(dá)式的值時(shí),執(zhí)行語(yǔ)句組組n。當(dāng)任意一個(gè)分支的語(yǔ)句執(zhí)。當(dāng)任意一個(gè)分支的語(yǔ)句執(zhí)行完后,直接執(zhí)行行完后,直接執(zhí)行switch語(yǔ)句的語(yǔ)句的下一句下一句c

21、learn=input(input n=);switch mod(n,5)case 0 fprintf(%d 是是5的倍數(shù)的倍數(shù),n)otherwise fprintf(%d 不是不是5的倍數(shù)的倍數(shù),n)endinput n=4646 不是5的倍數(shù)例:例: 判斷任意給定的整數(shù)判斷任意給定的整數(shù)n是否為是否為5的倍數(shù),并輸出判斷結(jié)果。的倍數(shù),并輸出判斷結(jié)果。price200 沒(méi)有折扣沒(méi)有折扣200price500 3%折扣折扣500price1000 5%折扣折扣1000price2500 8%折扣折扣2500price 2)n:=10, f(10)=55n:=44, f(44)=7014087

22、33例例:求正整數(shù)n的階乘:p=12 3 n = n!,并求出n=20時(shí)的結(jié)果。分析:分析: 這是一個(gè)逐次乘積的過(guò)程,從1開(kāi)始存放在積p中,再乘以下一個(gè)正整數(shù)之后再取代積p,依次類(lèi)推,直到乘至第n個(gè)數(shù)。因此,使用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。 clear;clc;n=20; %賦值給定正整數(shù) p=1; %設(shè)定存放階乘的變量p并賦初值1 for i=1:n %定義循環(huán)變量i從1到n,以1為步長(zhǎng),即連續(xù)正整數(shù) p=p*i; %先計(jì)算右端乘積后再賦給左端的變量p fprintf(i=%.0f, p=%.0fn,i,p) %逐行顯示出i! end %循環(huán)結(jié)構(gòu)結(jié)束問(wèn)題:?jiǎn)栴}: 是否可以考慮利用input命令對(duì)n進(jìn)行賦

23、值,隨時(shí)改變其大小。如果可以,請(qǐng)修改上述程序并運(yùn)行。 例:根據(jù)麥克勞林公式可以得到e1+1+1/2!+1/3!+1/n!,試求e的近似值。分析分析: 這個(gè)問(wèn)題可以分解為,從1開(kāi)始的正整數(shù)階乘的倒數(shù)和的累加運(yùn)算,累加結(jié)果存放在初始值為1的變量中。因此,對(duì)上例進(jìn)行修改來(lái)實(shí)現(xiàn)。 clear;clc;n=10; %賦值給定正整數(shù)p=1; %設(shè)定存放階乘的變量p并賦初值1s=1; %設(shè)定存放累加和的變量s并賦初值1for i=1:n %定義循環(huán)變量i從1到n,以1為步長(zhǎng),即連續(xù)正整數(shù)p=p*i; %先計(jì)算右端乘積后再賦給左端的變量ps=s+1/p; %先計(jì)算右端階乘倒數(shù)的累加后再賦給左端的變量sfpri

24、ntf(i=%.0f, s=%.8fn,i,s) %逐行顯示出e的近似值end %循環(huán)結(jié)構(gòu)結(jié)束問(wèn)題:?jiǎn)栴}: 如何有效地控制e的近似值的精度,或者說(shuō)如何修改程序使其根據(jù)近似值的精度要求自動(dòng)控制循環(huán)次數(shù)?2 2、 條件循環(huán)(條件循環(huán)(while-endwhile-end)結(jié)構(gòu))結(jié)構(gòu)格式:格式: while (conditions) commands-1; endcommands-2; 當(dāng)條件 conditions為真時(shí),執(zhí)行commands-1,當(dāng)遇到end時(shí),自動(dòng)檢測(cè)條件;當(dāng)條件 conditions不滿足時(shí),轉(zhuǎn)向執(zhí)行commands-2。在設(shè)計(jì)while-end循環(huán)結(jié)構(gòu)時(shí),應(yīng)在循環(huán)模塊內(nèi)有修改

25、conditions的部分,確保在執(zhí)行了一定次數(shù)之后可以結(jié)束循環(huán);否則,就成了“死循環(huán)”,即無(wú)限次重復(fù)執(zhí)行循環(huán)。另外,結(jié)構(gòu)中while與end要成對(duì)出現(xiàn)。作用:作用:例:對(duì)于數(shù)列, 2 , 1,nn,求其前n項(xiàng)和不超過(guò)1000時(shí)的n的值及和.分析分析: 這個(gè)問(wèn)題就是求不等式100021ns從1開(kāi)始的連續(xù)正整數(shù)開(kāi)方的累加。因此,運(yùn)用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn),的整數(shù)解,而和s為但每次累加前要判斷大小。clear;clc;n=0; %設(shè)定正整數(shù)并賦初值0s=0; %設(shè)定存放累加和的變量s并賦初值0while s=2 k=k-1; p(k)=2*(p(k+1)+1);endp(1)1211 kkppPk-1 =

26、2(pk +1)ans = 1534例:例:根據(jù)e1+1+1/2!+1/3!+1/n! 求e的近似值,要求精確到小數(shù)點(diǎn)后8位。分析分析: !/11neenn8110!/ 1neenn這里不能給定n的大小,但注意到第n次近似值和第n-1次近似值的差:?,F(xiàn)要精確到小數(shù)點(diǎn)后8位,則只需要因此,可以以此為條件運(yùn)用條件循環(huán)來(lái)實(shí)現(xiàn)。 ,注意注意:在MATLAB中810用科學(xué)記數(shù)法1.0e-8來(lái)表示。clear;clc; p=1; %設(shè)定存放階乘的變量p并賦初值1s=1; %設(shè)定存放累加和的變量s并賦初值1r=1; %設(shè)定前后兩次近似值的誤差r并賦初值1k=0; %設(shè)定構(gòu)造連續(xù)正整數(shù)的變量k賦初值0又為循環(huán)

27、次數(shù)while r=1.0e-8 %根據(jù)近似值的精度r大小來(lái)定義條件循環(huán)k=k+1; %轉(zhuǎn)換下一個(gè)正整數(shù),或開(kāi)始統(tǒng)計(jì)循環(huán)次數(shù)p=p*k; %計(jì)算k的階乘pr=1/p; %計(jì)算前后兩次近似值的誤差rs=s+r; %計(jì)算e的近似值sfprintf(k=%.0f, s=%.8fn,k,s) %逐行顯示出e的近似值end %循環(huán)結(jié)構(gòu)結(jié)束MATLAB程序流程控制程序流程控制 在編寫(xiě)程序過(guò)程中,根據(jù)問(wèn)題求解的要求,往往需要在一定條件下跳出當(dāng)前循環(huán),或終止程序運(yùn)行,或暫停程序運(yùn)行等,這也就是在編制程序過(guò)程中對(duì)程序流程進(jìn)行控制。MATLAB軟件提供了相應(yīng)流程控制語(yǔ)句:break、return和pause等。1

28、、 break語(yǔ)句語(yǔ)句 break 語(yǔ)句導(dǎo)致包含break 指令的最內(nèi)層while或for循環(huán)的終止。通常是根據(jù)循環(huán)內(nèi)部另設(shè)的某種條件是否滿足來(lái)決定是否跳出循環(huán),因此,常和if判斷一起使用。在很多情況下,這樣做是十分必要的。 格式:格式: while (conditions-1) if (conditions-2)break;end endcommands;作用作用: 當(dāng)執(zhí)行到ifif模塊且條件 conditions-2conditions-2為真時(shí),執(zhí)行breakbreak語(yǔ)句,程序則跳出當(dāng)前whilewhile循環(huán),直接執(zhí)行循環(huán)結(jié)構(gòu)外的commandscommands.a=3;b=6;fo

29、r 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分析下列程序,說(shuō)明運(yùn)行結(jié)果及原因分析下列程序,說(shuō)明運(yùn)行結(jié)果及原因運(yùn)行結(jié)果運(yùn)行結(jié)果:a=5a=72 、 return語(yǔ)句 return 語(yǔ)句導(dǎo)致程序終止運(yùn)行,其結(jié)果對(duì)普通程序是提前結(jié)束運(yùn)行,對(duì)于函數(shù)命令程序則是結(jié)束該函數(shù)程序,并返回到調(diào)用函數(shù)處。該語(yǔ)句通常和if判斷一起使用。格式:格式: if (conditions)return;end作用:作用: 當(dāng)執(zhí)行到if模塊且條件 conditions為真時(shí),執(zhí)行return語(yǔ)句,程序則被終止,提前結(jié)束程序的運(yùn)行。3 、 pause語(yǔ)句 pause 語(yǔ)句使程序運(yùn)行暫停,等待用戶按任意鍵繼續(xù)。Pause 語(yǔ)句在程序調(diào)試或查看中間結(jié)果時(shí)經(jīng)常使用,它有兩種用法: 直接使用:pause 作用作用:程序執(zhí)行此語(yǔ)句時(shí),暫停執(zhí)行程序,等待用戶從鍵盤(pán)按任意鍵繼續(xù)運(yùn)行。使用按時(shí)間暫停形式:pause(n) (其中n為暫停時(shí)間秒數(shù))作用:作用:程序執(zhí)行此語(yǔ)句時(shí),暫停n秒后繼續(xù)執(zhí)行程序,這里n為正的小數(shù)或整數(shù),代表暫停時(shí)間。它通??梢杂脕?lái)放慢程序運(yùn)行展示內(nèi)部過(guò)程,可實(shí)現(xiàn)動(dòng)畫(huà)效果。例:例:Fibonacci 數(shù)組中第一個(gè)大于10000的元素。分析

溫馨提示

  • 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)論