資源描述:
《MATLAB程序設(shè)計(jì)ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第4講MATLAB程序設(shè)計(jì)4.1程序控制結(jié)構(gòu)4.2函數(shù)文件4.3程序舉例程序控制結(jié)構(gòu)有三種:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。任何復(fù)雜的程序都由這三種基本結(jié)構(gòu)組成。4.1.1順序結(jié)構(gòu)4.1程序控制結(jié)構(gòu)按排列順序依次執(zhí)行各條語(yǔ)句,直到程序的最后。這是最簡(jiǎn)單的一種程序結(jié)構(gòu),一般涉及數(shù)據(jù)的輸入輸出、數(shù)據(jù)的計(jì)算或處理等。1.數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來進(jìn)行,該函數(shù)的調(diào)用格式為:A=input(提示信息,選項(xiàng));其中提示信息為一個(gè)字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。如果在input函數(shù)調(diào)用
2、時(shí)采用‘s’選項(xiàng),則允許用戶輸入一個(gè)字符串。例如,想輸入一個(gè)人的姓名,可采用命令:xm=input('What''syourname?','s');2.數(shù)據(jù)的輸出MATLAB提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為disp(輸出項(xiàng))其中輸出項(xiàng)既可以為字符串,也可以為矩陣。例4-1輸入x,y的值,并將它們的值互換后輸出。程序如下:x=input('Inputxplease:');y=input('Inputyplease:');z=x;x=y;y=z;disp(x);disp(y);例4-
3、2求一元二次方程ax2+bx+c=0的根。程序如下: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))]);3.程序的暫停暫停程序的執(zhí)行可以使用pause函數(shù),其調(diào)用格式為:pause(延遲秒數(shù))如果省略延遲時(shí)間,直接使用pause,則將暫停程序,直到用戶按任一鍵后
4、程序繼續(xù)執(zhí)行。若要強(qiáng)行中止程序的運(yùn)行可使用Ctrl+C命令。4.1.2選擇結(jié)構(gòu)選擇結(jié)構(gòu)是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語(yǔ)句。Matlab用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有if語(yǔ)句和switch語(yǔ)句。1.if語(yǔ)句在MATLAB中,if語(yǔ)句有3種格式。(1)單分支if語(yǔ)句:if條件語(yǔ)句組end當(dāng)條件成立時(shí),則執(zhí)行語(yǔ)句組,執(zhí)行完之后繼續(xù)執(zhí)行if語(yǔ)句的后繼語(yǔ)句,若條件不成立,則直接執(zhí)行if語(yǔ)句的后繼語(yǔ)句。(2)雙分支if語(yǔ)句:if條件語(yǔ)句組1else語(yǔ)句組2end當(dāng)條件成立時(shí),執(zhí)行語(yǔ)句組1,否則執(zhí)行語(yǔ)句組2
5、,語(yǔ)句組1或語(yǔ)句組2執(zhí)行后,再執(zhí)行if語(yǔ)句的后繼語(yǔ)句。例4-3計(jì)算分段函數(shù)的值。程序如下:x=input('請(qǐng)輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy(3)多分支if語(yǔ)句:if條件1語(yǔ)句組1elseif條件2語(yǔ)句組2……elseif條件m語(yǔ)句組melse語(yǔ)句組nend語(yǔ)句用于實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。例4-4輸入一個(gè)字符,若為大寫字母,則輸出其對(duì)應(yīng)的小寫字母;若為小寫字母,則輸出其對(duì)應(yīng)的大寫字母;若為數(shù)字字符則輸
6、出其對(duì)應(yīng)的數(shù)值,若為其他字符則原樣輸出。c=input('請(qǐng)輸入一個(gè)字符','s');ifc>='A'&c<='Z'disp(setstr(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'disp(setstr(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));elsedisp(c);end2.switch語(yǔ)句根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語(yǔ)句。switchexpre
7、ssion(表達(dá)式)casevalue1(表達(dá)式1)statement1(語(yǔ)句組1)casevalue2(表達(dá)式2)statement2(語(yǔ)句組2)......casevaluem(表達(dá)式m)statementm(語(yǔ)句組m)otherwisestatement(語(yǔ)句組)endMatlab首先計(jì)算expression的值,然后將它依次與各個(gè)case指令后的檢測(cè)值進(jìn)行比較,當(dāng)比較結(jié)果為真時(shí),就執(zhí)行相應(yīng)的語(yǔ)句組,然后跳出switch結(jié)構(gòu)。switch后面的表達(dá)式expression的值可以是一個(gè)標(biāo)量或字符串
8、。switch語(yǔ)句otherwise指令可以不出現(xiàn)。如果所有的比較結(jié)果都為假,則執(zhí)行otherwise后面的語(yǔ)句組,然后跳出switch結(jié)構(gòu)。例4-5某商場(chǎng)對(duì)顧客所購(gòu)買的商品實(shí)行打折銷售,標(biāo)準(zhǔn)如下(商品價(jià)格用price來表示):price<200沒有折扣200≤price<5003%折扣500≤price<10005%折扣1000≤price<25008%折扣2500≤price<500010%折扣5000≤price14%折扣輸入所售商品的價(jià)格,求其實(shí)