




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Matlab軟件與基礎(chǔ)數(shù)學(xué)實(shí)驗(yàn)
MATLAB編程介紹與循環(huán)結(jié)構(gòu)★
MATLAB中每一個(gè)命令都是一個(gè)M-文件?!?/p>
MATLAB中各種命令可以完成許多單一的任務(wù),對于某些較為復(fù)雜的問題,僅靠現(xiàn)有的命令或函數(shù)來解決,往往是難以達(dá)到目的。為此,要運(yùn)用MATLAB編程語言編制程序,形成M-文件。
★
程序是使計(jì)算機(jī)完成各項(xiàng)運(yùn)算的命令集,運(yùn)行一個(gè)編制好的程序,計(jì)算機(jī)會(huì)從第一條命令行開始,一行接一行地執(zhí)行相應(yīng)的命令,直到終止。
MATLAB作為一種高級語言,不但可以以命令行的方式完成操作,而且可以像大多數(shù)程序語言一樣具有結(jié)構(gòu)控制語句、輸入輸出語句和面向?qū)ATLAB程序(又稱為M-文件)有兩種形式,一種是可直接運(yùn)行的命令文件,另一種是可供調(diào)用的函數(shù)文件,這兩種文件的擴(kuò)展名相同,均為“.m”,故稱為M-文件。象編程的能力。
MATLAB編程介紹
MATLAB程序編輯是在編輯窗口(MATLABEditor/Debugger)中進(jìn)行,程序運(yùn)行結(jié)果或錯(cuò)誤信息顯示在在命令窗口(CommandWindows)中。1、編寫M-文件的步驟(1)打開程序編輯窗口:點(diǎn)擊MATLAB命令窗口工具條上的NewFile圖標(biāo),或點(diǎn)擊命令窗口中的[File]菜單,點(diǎn)擊選項(xiàng)中的New,選擇M-file,就可打開MATLAB程序編輯窗口(MATLABEditor/Debugger),用戶可在窗口中編寫、修改程序。(2)保存編寫的程序:在程序編寫過程中,或程序編寫完成后,點(diǎn)擊工具條上的Save圖標(biāo),或按F2鍵,再選擇文件夾:\Matlab\Work,輸入自己定義的文件名,點(diǎn)擊[保存]保存文件,保存后文件名后自動(dòng)加上“.m”后綴,即為M-文件。注意:★文件名要以字母開頭中間不含空格和標(biāo)點(diǎn)符號且不超過8個(gè)字符;不能用數(shù)字和專用變量名作為文件名,如1,11,pi,ans,eps等?!?/p>
程序通常保存在文件夾:\Matlab\Work中,此路徑為MATLAB軟件默認(rèn)路徑?!锍绦蛉粢娣诺狡渌募A中,則要添加該路徑到MATLAB的路徑設(shè)置中,否則程序不能連接執(zhí)行。
點(diǎn)擊編輯窗工具條上[File]菜單,選擇SetPath..,此時(shí)打開路徑設(shè)置窗口,再點(diǎn)擊AddFoider..,選擇你所使用的文件夾(若沒有則要先新建),選定后該路徑自動(dòng)顯示在列表的第一行或最后一行,再點(diǎn)擊Save保存即可。具體操作:2、運(yùn)行M-文件
運(yùn)行一個(gè)已經(jīng)編寫好且存盤的M-文件有兩種方法:
在MATLAB編輯窗口中對正在編輯的M-文件,保存后可直接點(diǎn)擊工具條上的Debug中的Run命令運(yùn)行或按F5鍵,即可運(yùn)行當(dāng)前程序,其運(yùn)行結(jié)果或信息顯示在命令窗口,此時(shí),用戶可以切換到命令窗口進(jìn)行查看,之后可回到編輯窗對程序進(jìn)行修改、重新保存再次運(yùn)行。方法一:
在MATLAB命令窗口中直接輸入文件名回車,即可運(yùn)行相應(yīng)的M-文件。其運(yùn)行結(jié)果或程序運(yùn)行中的錯(cuò)誤信息等顯示在命令窗口,此時(shí),用戶若要修改程序則可以切換到編輯窗口進(jìn)行修改,修改后重新保存。方法二:
當(dāng)對程序進(jìn)行修改保存時(shí),當(dāng)前程序?qū)⒏采w原來程序,此時(shí)若要想保存為另外的文件,則要點(diǎn)擊工具條上[File]菜單,選擇Saveas..,另取文件名保存即可。注意:例1、分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。首先建立命令文件并以文件名yy1.m存盤。clear;%清除工作空間中的變量f=input('InputFahrenheittemperature:');c=5*(f-32)/9然后在MATLAB的命令窗口中輸入yy1,將會(huì)執(zhí)行該命令文件,執(zhí)行情況為:InputFahrenheittemperature:73c=22.7778程序1:首先建立函數(shù)文件yy2.m。functionc=yy2(f)c=5*(f-32)/9然后在MATLAB的命令窗口調(diào)用該函數(shù)文件。clear;y=input('InputFahrenheittemperature:');x=yy2(y)輸出情況為:InputFahrenheittemperature:70c=21.1111x=21.1111程序2:
MATLAB程序的基本結(jié)構(gòu)
MATLAB提供了三種基本的程序結(jié)構(gòu):順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)。一個(gè)MATLAB程序就是使計(jì)算機(jī)實(shí)現(xiàn)某一類功能任務(wù)的命令集。用戶編制程序時(shí),需要按照解決問題的邏輯步驟和求解算法,用MATLAB的語句和函數(shù),按照三種基本結(jié)構(gòu)逐條編寫,一般一行一條語句,便于調(diào)試和查找錯(cuò)誤。其中功能處理部分是核心,主要是根據(jù)處理問題的邏輯步驟,采用循環(huán)迭加、判斷推理、分步計(jì)算等來解決問題。程序一般包含三個(gè)部分:數(shù)據(jù)輸入、功能處理、結(jié)果輸出
程序編寫完成后,需要存盤,形成永久性文件,之后可以隨時(shí)對它進(jìn)行調(diào)用或修改。M-文件中的輸入、輸出方式1、輸入方式s='Anystring!';%輸入字符串(1)程序中直接賦值x=2;%輸入單個(gè)值a=[1,2,3;4,5,6;7,8,0];%輸入矩陣(a為3階方陣)(2)程序運(yùn)行時(shí)賦值變量=input('提示符號串');格式:功能:
從鍵盤接收數(shù)據(jù)并賦予等號左邊變量。其中
'提示符號串'是在命令窗口中的提示。
y=input('Pleaseinputy=');%提示語句輸入如:x=input('x=');
當(dāng)執(zhí)行到此語句時(shí),暫停程序運(yùn)行,在命令窗口中光標(biāo)將停留在提示符號串后閃爍,等待從鍵盤接收數(shù)據(jù)。用戶從鍵盤輸入數(shù)據(jù)并按回車鍵確認(rèn),繼續(xù)程序運(yùn)行。其優(yōu)點(diǎn)是每次運(yùn)行可以輸入不同數(shù)據(jù),實(shí)現(xiàn)人機(jī)對話。
如果在input函數(shù)調(diào)用時(shí)采用's'選項(xiàng),則允許用戶輸入一個(gè)字符串。例如,想輸入一個(gè)人的姓名,可采用命令:xm=input('What''syourname?','s');2、輸出方式(1)直接輸出x%變量后無分號“;”,變量直接輸出disp([a]);%a可以是矩陣、數(shù)組和單個(gè)值(2)格式控制輸出(fprintf命令)fprintf('x=%.3f
y=%.0f\n',a,b);%按指定格式輸出格式:
其中,單引號內(nèi)為格式說明符:%前為提示符,%.3f為數(shù)據(jù)格式符,通常與單引號后面的數(shù)據(jù)相對應(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為要顯示的變量,它們與前面的格式符相對應(yīng)。例:
fprintf('x=%.5fy=%.0f\n',pi,sqrt(2));結(jié)果為:
x=3.14159y=1fprintf('x=%.5fy=%.0f\n',sqrt(2),pi);結(jié)果為:
x=1.41412y=3
x=input('Inputxplease.');y=input('Inputyplease.');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=',num2str(x(2))]);例:求一元二次方程ax^2+bx+c=0的根。a=1b=2c=3x1=-1+1.4142i,x2=-1-1.4142i結(jié)果為:
若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。3、程序的暫停暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)用格式為:pause(延遲秒數(shù))如果省略延遲時(shí)間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。MATLAB選擇結(jié)構(gòu)1、單項(xiàng)選擇判斷(if-end)結(jié)構(gòu)格式:
if
(condition) commands-1;endcommands-2;作用:
若條件condition成立,則執(zhí)行commands-1,再順序執(zhí)行commands-2;否則,跳過commands-1,直接執(zhí)行commands-2.例:求任意有限數(shù)組a=[a(1),a(2),…,a(n)]
中數(shù)值最大的元素M以及所在位置k.分析:
這是一個(gè)求n個(gè)實(shí)數(shù)中最大(最?。?shù)的問題,可以編制一個(gè)函數(shù)文件,隨時(shí)調(diào)用。首先可以假設(shè)最大數(shù)M=a(1),位置k=1;再從第二個(gè)數(shù)到最后一個(gè)數(shù)分別同M比較,取較大者為M,同時(shí)保留其位置。因此,運(yùn)用循環(huán)加判斷編制程序來實(shí)現(xiàn)。function[M,k]=yy3(a)
%定義函數(shù)yy3,輸入變量為數(shù)組a,返回值為最大元素M及位置kn=length(a);%獲取數(shù)組的長度即元素的個(gè)數(shù)nM=a(1);k=1;%將第一個(gè)元素作為最大值賦值給M,位置為1;fori=2:n%從第二個(gè)元素到最后一個(gè)元素依次進(jìn)行ifa(i)>M%比較后續(xù)元素與目前最大值M的大小M=a(i);k=i;%將數(shù)值較大的元素賦值給M,同時(shí)保留位置iend%選擇結(jié)構(gòu)結(jié)束end%循環(huán)結(jié)構(gòu)結(jié)束編寫完成后以文件名yy3存盤(這里是函數(shù)命令程序)。此時(shí),MATLAB函數(shù)庫中多了個(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)選擇判斷(if-else-end)結(jié)構(gòu)格式:
if(condition1) commands-1;elseif(condition2)commands-2;elsecommands-3;endcommands-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í)行。例:編寫一個(gè)函數(shù)將百分制成績轉(zhuǎn)換為優(yōu)(A),良(B),中(C),差(D)四等級.分析:
按照通常的等級劃分,一般90-100分為優(yōu),78-89分為良,60-77分為中,60分以下的為差,因此,可以用多項(xiàng)選擇判斷結(jié)構(gòu)來實(shí)現(xiàn)。functionjb=dengji(fs)
%定義函數(shù)dengji,輸入變量為分?jǐn)?shù)fs,返回值為等級A,B,C,Diffs>=90%判斷分?jǐn)?shù)fs是否處在優(yōu)秀級別上jb=‘A’;%定義為A級elseiffs>=78%判斷分?jǐn)?shù)fs是否處在良好級別上jb='B';%定義為B級elseiffs>=60%判斷分?jǐn)?shù)fs是否處在合格級別上jb='C';%定義為C級else%分?jǐn)?shù)fs不處于以上任何級別上jb='D';%定義為D級end%選擇結(jié)構(gòu)結(jié)束
編寫完成后以文件名dengji存盤。此時(shí),MATLAB函數(shù)庫中多了個(gè)函數(shù)dengji.m,可進(jìn)行調(diào)用。在命令窗中試運(yùn)行如下:>>jb=dengji(81)%調(diào)用函數(shù)dengjijb=Bx=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endY例:計(jì)算分段函數(shù)的值。3、switch語句switch語句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語句,其語句格式為:switch表達(dá)式
case表達(dá)式1
語句組1case表達(dá)式2
語句組2……case表達(dá)式m
語句組motherwise
語句組nend
當(dāng)表達(dá)式的值等于表達(dá)式1的值時(shí),執(zhí)行語句組1,當(dāng)表達(dá)式的值等于表達(dá)式2的值時(shí),執(zhí)行語句組2,…,當(dāng)表達(dá)式的值等于表達(dá)式m的值時(shí),執(zhí)行語句組m,當(dāng)表達(dá)式的值不等于case所列的表達(dá)式的值時(shí),執(zhí)行語句組n。當(dāng)任意一個(gè)分支的語句執(zhí)行完后,直接執(zhí)行switch語句的下一句clearn=input('inputn=');switchmod(n,5)case0fprintf('%d是5的倍數(shù)',n)otherwisefprintf('%d不是5的倍數(shù)',n)endinputn=4646不是5的倍數(shù)例:判斷任意給定的整數(shù)n是否為5的倍數(shù),并輸出判斷結(jié)果。price<200沒有折扣200≤price<5003%折扣500≤price<10005%折扣1000≤price<25008%折扣2500≤price<500010%折扣5000≤price14%折扣例:某商場對顧客所購買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來表示):輸入所售商品的價(jià)格,求其實(shí)際銷售價(jià)格。price=input('請輸入商品價(jià)格');switchfix(price/100)case{0,1}%價(jià)格小于200rate=0;case{2,3,4}%價(jià)格大于等于200但小于500rate=3/100;casenum2cell(5:9)%價(jià)格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%價(jià)格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%價(jià)格大于等于2500但小于5000rate=10/100;otherwise%價(jià)格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實(shí)際銷售價(jià)格MATLAB循環(huán)結(jié)構(gòu)與應(yīng)用
循環(huán)結(jié)構(gòu)是MATLAB程序中最常用的結(jié)構(gòu)之一,它是讓計(jì)算機(jī)按照一定的條件多次重復(fù)執(zhí)行某一命令集,從而實(shí)現(xiàn)諸如累加、迭代、分層計(jì)算等功能。MATLAB軟件提供了兩種循環(huán)結(jié)構(gòu):有限次循環(huán)for-end結(jié)構(gòu)和條件循環(huán)while-end結(jié)構(gòu)。1、有限次循環(huán)(for-end)結(jié)構(gòu)for
n=n1:step:n2
commands-1
end
commands-2格式:其中n為循環(huán)變量(自己定義),n1為起始值,step為步長,n2為結(jié)束值;commands-1為循環(huán)體(循環(huán)模塊),commands-2為后序命令。
循環(huán)變量n從n1開始,執(zhí)行commands-1,遇到end時(shí)n自動(dòng)增加step步長,同時(shí)與n2比較,當(dāng)n不超過n2時(shí)重復(fù)執(zhí)行commands-1;當(dāng)n超過n2時(shí)轉(zhuǎn)向執(zhí)行commands-2。當(dāng)步長為1時(shí),格式中step可以省略,即為forn=n1:n2格式。在設(shè)計(jì)for-end循環(huán)結(jié)構(gòu)時(shí),應(yīng)在循環(huán)模塊內(nèi)充分利用循環(huán)變量的變化規(guī)律,開展相關(guān)的運(yùn)算。另外,結(jié)構(gòu)中for與end要成對出現(xiàn)。作用:例:求n(n=100)個(gè)奇數(shù)的和:s=1+3+5+…+(2n-1).
這是一個(gè)逐個(gè)累加求和的過程,從1開始存放在和s中,再累加下一個(gè)奇數(shù)之后再取代和s,依次類推,直到累加到第n個(gè)奇數(shù)。因此,使用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。分析:clear;clc;n=100;%賦值給定奇數(shù)的個(gè)數(shù)
s=0;%設(shè)定存放和的變量s并賦初值0fori=1:n%定義循環(huán)變量i從1到n,以1為步長,即為奇數(shù)序號s=s+(2*i-1);%先計(jì)算右端累加后再賦給左端的變量sfprintf('i=%.0f,s=%.0f\n',i,s)%逐行顯示出累加求和的過程end%循環(huán)結(jié)構(gòu)結(jié)束
是否可以(1)直接用從1開始的奇數(shù)作為循環(huán)變量?(2)不需要顯示求和過程,只顯示最后結(jié)果?如果可以,請修改上述程序并運(yùn)行。問題:n=input('inputn:=');f(1)=1;f(2)=1;fork=3:nf(k)=f(k-1)+f(k-2);endf(n)例:求裴波拉奇數(shù)列的第n項(xiàng)(n>2)n:=10,f(10)=55n:=44,f(44)=701408733例:求正整數(shù)n的階乘:p=1×2×3×…×n=n!,并求出n=20時(shí)的結(jié)果。分析:
這是一個(gè)逐次乘積的過程,從1開始存放在積p中,再乘以下一個(gè)正整數(shù)之后再取代積p,依次類推,直到乘至第n個(gè)數(shù)。因此,使用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn)。
clear;clc;n=20;%賦值給定正整數(shù)
p=1;%設(shè)定存放階乘的變量p并賦初值1
fori=1:n%定義循環(huán)變量i從1到n,以1為步長,即連續(xù)正整數(shù)
p=p*i;%先計(jì)算右端乘積后再賦給左端的變量pfprintf('i=%.0f,p=%.0f\n',i,p)%逐行顯示出i!end%循環(huán)結(jié)構(gòu)結(jié)束問題:
是否可以考慮利用input命令對n進(jìn)行賦值,隨時(shí)改變其大小。如果可以,請修改上述程序并運(yùn)行。例:根據(jù)麥克勞林公式可以得到e≈1+1+1/2!+1/3!+…+1/n!,試求e的近似值。分析:
這個(gè)問題可以分解為,從1開始的正整數(shù)階乘的倒數(shù)和的累加運(yùn)算,累加結(jié)果存放在初始值為1的變量中。因此,對上例進(jìn)行修改來實(shí)現(xiàn)。
clear;clc;n=10;%賦值給定正整數(shù)p=1;%設(shè)定存放階乘的變量p并賦初值1s=1;%設(shè)定存放累加和的變量s并賦初值1fori=1:n%定義循環(huán)變量i從1到n,以1為步長,即連續(xù)正整數(shù)p=p*i;%先計(jì)算右端乘積后再賦給左端的變量ps=s+1/p;%先計(jì)算右端階乘倒數(shù)的累加后再賦給左端的變量sfprintf('i=%.0f,s=%.8f\n',i,s)%逐行顯示出e的近似值end%循環(huán)結(jié)構(gòu)結(jié)束問題:
如何有效地控制e的近似值的精度,或者說如何修改程序使其根據(jù)近似值的精度要求自動(dòng)控制循環(huán)次數(shù)?2、條件循環(huán)(while-end)結(jié)構(gòu)格式:
while(conditions) commands-1;
endcommands-2;
當(dāng)條件conditions為真時(shí),執(zhí)行commands-1,當(dāng)遇到end時(shí),自動(dòng)檢測條件;當(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)有修改conditions的部分,確保在執(zhí)行了一定次數(shù)之后可以結(jié)束循環(huán);否則,就成了“死循環(huán)”,即無限次重復(fù)執(zhí)行循環(huán)。另外,結(jié)構(gòu)中while與end要成對出現(xiàn)。作用:例:對于數(shù)列,求其前n項(xiàng)和不超過1000時(shí)的n的值及和.分析:這個(gè)問題就是求不等式從1開始的連續(xù)正整數(shù)開方的累加。因此,運(yùn)用循環(huán)結(jié)構(gòu)來實(shí)現(xiàn),的整數(shù)解,而和s為但每次累加前要判斷大小。clear;clc;n=0;%設(shè)定正整數(shù)并賦初值0s=0;%設(shè)定存放累加和的變量s并賦初值0whiles<=1000%用累加和s與1000進(jìn)行比較作為循環(huán)條件n=n+1;%改變n為連續(xù)正整數(shù)s=s+sqrt(n);%先計(jì)算右端開方數(shù)的累加后再賦給左端的變量sfprintf('n=%.0f,s=%.4f\n',n,s)%逐行顯示正整數(shù)及部分和end%循環(huán)結(jié)構(gòu)結(jié)束問題:
從結(jié)果上可以看到,最后一行的結(jié)果并不是我們所要求解的答案,而倒數(shù)第二行則是所求問題的解。這是為什么?如何修改程序來避免這種情況?例:小猴吃桃問題
有一天小猴摘下了若干個(gè)桃子,當(dāng)即吃掉了一半,又多吃了一個(gè).第二天接著吃了剩下的一半,又多吃了一個(gè)以后每天都是吃掉尚存的桃子的一半零一個(gè).到第十天早上,小猴準(zhǔn)備吃桃子時(shí),看到只剩下1
個(gè)桃子了.問小猴第一天共摘下了多少個(gè)桃子?
解:設(shè)第k天的桃子數(shù)為pk,(k=1,···,10)則規(guī)律為k=10;p(k)=1;whilek>=2k=k-1;p(k)=2*(p(k+1)+1);endp(1)Pk-1=2(pk+1)ans=1534例:根據(jù)e≈1+1+1/2!+1/3!+…+1/n!求e的近似值,要求精確到小數(shù)點(diǎn)后8位。分析:這里不能給定n的大小,但注意到第n次近似值和第n-1次近似值的差:?,F(xiàn)要精確到小數(shù)點(diǎn)后8位,則只需要因此,可以以此為條件運(yùn)用條件循環(huán)來實(shí)現(xiàn)。
,注意:在MATLAB中用科學(xué)記數(shù)法1.0e-8來表示。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)次數(shù)whiler>=1.0e-8%根據(jù)近似值的精度r大小來定義條件循環(huán)k=k+1;%轉(zhuǎn)換下一個(gè)正整數(shù),或開始統(tǒng)計(jì)循環(huán)次數(shù)p=p*k;%計(jì)算k的階乘pr=1/p;%計(jì)算前后兩次近似值的誤差rs=s+r;%計(jì)算e的近似值sfprintf('k=%.0f,s=%.8f\n',k,s)%逐行顯示出e的近似值end%循環(huán)結(jié)構(gòu)結(jié)束MATLAB程序流程控制
在編寫程序過程中,根據(jù)問題求解的要求,往往需要在一定條件下跳出當(dāng)前循環(huán),或終止程序運(yùn)行,或暫停程序運(yùn)行等,這也就是在編制程序過程中對程序流程進(jìn)行控制。MATLAB軟件提供了相應(yīng)流程控制語句:break、return和pause等。1、break語句break語句導(dǎo)致包含break
指令的最內(nèi)層while或for循環(huán)的終止。通常是根據(jù)循環(huán)內(nèi)部另設(shè)的某種條件是否滿足來決定是否跳出循環(huán),因此,常和if判斷一起使用。在很多情況下,這樣做是十分必要的。格式:
while
(conditions-1)
……if
(conditions-2)break;end……
endcommands;作用:
當(dāng)執(zhí)行到if模塊且條件conditions-2為真時(shí),執(zhí)行break語句,程序則跳出當(dāng)前while循環(huán),直接執(zhí)行循環(huán)結(jié)構(gòu)外的commands.a=3;b=6;fori=1:3b=b+1;ifi>2break%當(dāng)if條件滿足時(shí)不再執(zhí)行循環(huán)
enda=a+2end分析下列程序,說明運(yùn)行結(jié)果及原因運(yùn)行結(jié)果:a=5a=72、return語句
return語句導(dǎo)致程序終止運(yùn)行,其結(jié)果對普通程序是提前結(jié)束運(yùn)行,對于函數(shù)命令程序則是結(jié)束該函數(shù)程序,并返回到調(diào)用函數(shù)處。該語句通常和if判斷一起使用。格式:
if
(conditions)return;end作用:
當(dāng)執(zhí)行到if模塊且條件conditions為真時(shí),執(zhí)行return語句,程序則被終止,提前結(jié)束程序的運(yùn)行。3、pause語句
pause
語句使程序運(yùn)行暫停,等待用戶按任意鍵繼續(xù)。Pause
語句在程序調(diào)試或查看中間結(jié)果時(shí)經(jīng)常使用,它有兩種用法:★
直接使用:pause
作用:程序執(zhí)行此語句時(shí),暫停執(zhí)行程序,等待用戶從鍵盤按任意鍵繼續(xù)運(yùn)行?!锸褂冒磿r(shí)間暫停形式:pause(n)
(其中n為暫停時(shí)間秒數(shù))作用:程序執(zhí)行此語句時(shí),暫停n秒后繼續(xù)執(zhí)行程序,這里n為正的小數(shù)或整數(shù),代表暫停時(shí)間。它通??梢杂脕矸怕绦蜻\(yùn)行展示內(nèi)部過程,可實(shí)現(xiàn)動(dòng)畫效果。例:Fibonacci
數(shù)組中第一個(gè)大于10000的元素。分析:
這是一個(gè)按遞推公式所生成的序列,每個(gè)元素為其前兩個(gè)元素之和,數(shù)列增加很快。因此,通過循環(huán)結(jié)構(gòu)來逐步生成數(shù)列的元素,并同時(shí)和10000比較,超過時(shí)終止循環(huán)。n=100;%給定一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稀土金屬提煉過程中的行業(yè)規(guī)范與標(biāo)準(zhǔn)制定工作進(jìn)展考核試卷
- 紙容器行業(yè)技術(shù)創(chuàng)新與專利布局考核試卷
- 肉類加工企業(yè)的市場動(dòng)態(tài)跟蹤與趨勢預(yù)測考核試卷
- 線上銷售與渠道管理考核試卷
- 電梯平衡補(bǔ)償裝置工作原理考核試卷
- 江蘇省南京市燕子磯中學(xué)2024-2025學(xué)年高考生物試題一輪復(fù)習(xí)模擬試題含解析
- 珠海三中高二下學(xué)期期中考試?yán)砜莆锢碓囶}
- 南京財(cái)經(jīng)大學(xué)紅山學(xué)院《港臺(tái)文學(xué)專題》2023-2024學(xué)年第一學(xué)期期末試卷
- 梧州學(xué)院《企業(yè)案例分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海市浦東新區(qū)南片聯(lián)合體達(dá)標(biāo)名校2024-2025學(xué)年初三第一次模擬考試適應(yīng)性測試英語試題含答案
- 2025年高考語文模擬作文導(dǎo)寫及點(diǎn)評:社會(huì)時(shí)鐘
- 《護(hù)理信息系統(tǒng)》課件
- 單片機(jī)技術(shù)與應(yīng)用知到智慧樹章節(jié)測試課后答案2024年秋甘肅省農(nóng)墾中等專業(yè)學(xué)校
- 施工現(xiàn)場平面布置與臨時(shí)設(shè)施、臨時(shí)道路布置方案
- 建筑施工大型機(jī)械設(shè)備安全使用與管理培訓(xùn)
- T-CNPPA 3027-2024 藥品泡罩包裝應(yīng)用指南
- 山東省濰坊市2025屆高考數(shù)學(xué)二模試卷含解析
- 6S管理制度(可參考)-6s管理制度
- 外語教師團(tuán)隊(duì)建設(shè)方案
- 四肢與關(guān)節(jié)檢查
- 產(chǎn)后抑郁癥講課課件
評論
0/150
提交評論