版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Matlab語言體系是Matlab的重要組成部分之一,Matlab為用戶提供了具有條件控制、函數(shù)調(diào)用、數(shù)據(jù)輸入輸出及面向?qū)ο蟮忍匦缘母邔拥?,完備的編程語言。
Matlab語言語法簡單,程序調(diào)試和維護(hù)容易,其編程效率遠(yuǎn)遠(yuǎn)高于C等高級語言。
程序設(shè)計2.4.1Matlab工作方式1.Matlab的工作方式有兩種:1)交互式的指令行操作方式用戶在命令窗口中按照Matlab的語法規(guī)則輸入命令行并按下回車鍵后,系統(tǒng)將執(zhí)行該命令并及時給出運算結(jié)果。該方式簡便易行,非常適合于簡單問題的數(shù)學(xué)演算、結(jié)果分析及測試。
缺點:命令行操作時,Matlab窗口只允許一次執(zhí)行一行上的一個或幾個語句。命令行方式程序可讀性差,而且不能存儲。例如:>>x1=0:10x1=012345678910>>x2=0:3:11x2=0369>>x3=11.5:-3:0x3=11.50008.50005.50002.5000>>x1=0:10,x2=0:3:11,x3=11.5:-3:0x1=012345678910x2=0369x3=11.50008.50005.50002.5000
但是當(dāng)需要解決的問題變得復(fù)雜后,用戶將要求系統(tǒng)依次執(zhí)行多條Matlab語句,而且應(yīng)編寫成能存儲的程序文件。顯然逐條指令行的交互式人機方式就不再適應(yīng)大型或復(fù)雜問題的解決,這是就要用Matlab的第二種工作方式。2)M文件的編程工作方式用戶通過命令窗口中調(diào)用M文件,從而實現(xiàn)一次執(zhí)行多條Matlab語句的方式。M文件是由Matlab語句(命令行)構(gòu)成的ASCII碼文本文件。M文件中的語句應(yīng)符合Matlab的語法規(guī)則,且文件名必須以.m為擴(kuò)展名,如:eg_moive.m。用戶可以用任何文本編輯器來對M文件進(jìn)行編輯。M文件的作用是:當(dāng)用戶在命令窗口中輸入已編輯并保存的M文件的文件名并按下回車鍵后,系統(tǒng)將搜索該文件,若該文件存在,系統(tǒng)將按M文件中的語句所規(guī)定的計算任務(wù)以解釋的方式逐一執(zhí)行語句,從而實現(xiàn)用戶要求的特定功能。M文件又分兩類:命令M文件(腳本文件)——獨立的m文件
函數(shù)M文件(函數(shù)文件)——可調(diào)用的m文件
命令文件(腳本文件)
運行命令文件的效果等價于從Matlab命令窗口中按順序逐條輸入并運行文件的指令。特點:可以訪問Matlab當(dāng)前工作空間中的所有變量和數(shù)據(jù)命令文件運行過程中創(chuàng)建或定義的變量均被保存在工作空間中。沒有輸入輸出參數(shù)因此,命令文件通常作為主程序來設(shè)計。
函數(shù)文件函數(shù)文件由Matlab語句(命令行)構(gòu)成的ASCII碼文本文件Matlab用戶可以根據(jù)需要編輯自己的m文件,它們可以像庫函數(shù)一樣方便的調(diào)用,從而極大地擴(kuò)展了Matlab的能力。對于某一類特殊問題,如創(chuàng)建了許多m函數(shù)文件,則可形成新的工具箱。這種用Matlab語言創(chuàng)建定義新的Matlab函數(shù)的功能,正體現(xiàn)了Matlab語言強大的擴(kuò)展功能。函數(shù)m文件的格式:
function返回變量=函數(shù)名(輸入變量)注釋說明語句段程序語句段特定規(guī)則:函數(shù)m文件第一行必須以單詞function作為引導(dǎo)詞,必須遵循如下形式:
function<因變量>=<函數(shù)名>(<自變量>)m文件的文件名必須是<函數(shù)名>.m。程序中的變量均為局部變量,不保存在工作空間中。其變量只在函數(shù)運行期間有效。2.4.2M文件的創(chuàng)建與打開
M文件是一個普通文本文件,它可以用任何編輯程序來建立和編輯,最為方便的是使用Matlab提供的文本編輯器。1)建立新的M文件建立新的M文件,啟動Matlab文本編輯器有3種方法:
菜單操作:從Matlab主窗口的File菜單中選擇New菜單項,再選擇M-file命令,屏幕上將出現(xiàn)Matlab文本編輯器窗口。命令操作:在Matlab命令窗口輸入命令edit,啟動Matlab文本編輯器后,輸入M文件的內(nèi)容并存盤。命令按鈕操作:單擊Matlab主窗口工具欄上的NewM-File命令按鈕,啟動Matlab文本編輯器后,輸入M文件的內(nèi)容并存盤。2)打開已有的M文件菜單操作:從Matlab主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對話框,在Open對話框中選中所需打開的M文件。在文檔窗口可以對打開的M文件進(jìn)行編輯修改,編輯完成后,將M文件存盤。命令操作:在Matlab命令窗口輸入命令:edit文件名,則打開指定的M文件。命令按鈕操作:單擊Matlab主窗口工具欄上的OpenFile命令按鈕,再從彈出的對話框中選擇所需打開的M文件。
程序調(diào)試程序調(diào)試概述
一般來說,應(yīng)用程序的錯誤有兩類,一類是語法錯誤,另一類是運行時的錯誤。語法錯誤包括詞法或文法的錯誤,例如函數(shù)名的拼寫錯、表達(dá)式書寫錯等。程序運行時的錯誤是指程序的運行結(jié)果有錯誤,這類錯誤也稱為程序邏輯錯誤。2.4.3Matlab的程序控制結(jié)構(gòu)
Matlab的控制語句同c語言有相似之處,但沒有c語言復(fù)雜、靈活和多變。因而語法比較簡單,容易掌握。
Matlab語言的程序結(jié)構(gòu)與其它高級語言是一致的,分為順序結(jié)構(gòu),循環(huán)結(jié)構(gòu),分支結(jié)構(gòu)。1)順序結(jié)構(gòu)——依次順序執(zhí)行程序的條語句
數(shù)據(jù)的輸入使用input函數(shù)從鍵盤輸入數(shù)據(jù),調(diào)用格式為:
A=input(提示信息,選項);其中提示信息為一個字符串,用于提示用戶輸入什么樣的數(shù)據(jù)。如果在input函數(shù)調(diào)用時采用‘s’選項,則允許用戶輸入一個字符串。
例如,想輸入一個人的姓名,可采用命令:
xm=input('What''syourname?','s');
數(shù)據(jù)的輸出Matmab提供的命令窗口輸出函數(shù)主要有disp函數(shù),其調(diào)用格式為:
disp(輸出項)
其中輸出項既可以為字符串,也可以為矩陣。
例2:輸入x,y的值,并將它們的值互換后輸出。程序如下:
x=input('Inputxplease.');
y=input('Inputyplease.');
z=x;x=y;y=z;disp(x);disp(y);例3:求一元二次方程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))]);2)選擇結(jié)構(gòu)
if語句
在Matlab中,if語句有4種格式。(1).單分支if語句
當(dāng)條件成立時,則執(zhí)行語句組,執(zhí)行完之后繼續(xù)執(zhí)行if語句的后繼語句,若條件不成立,則直接執(zhí)行if語句的后繼語句。if(條件表達(dá)式)
語句;endif(條件表達(dá)式)
語句;
語句;
……end表達(dá)式語句真語句表達(dá)式(2).if語句的雙分支選擇結(jié)構(gòu)if(條件表達(dá)式)
語句1;else
語句2;end表達(dá)式語句1真假語句2當(dāng)條件成立時,執(zhí)行語句組1,否則執(zhí)行語句組2,語句組1或語句組2執(zhí)行后,再執(zhí)行if語句的后繼語句。if語句的雙分支形式,在語法上視為一條語句。例4:計算分段函數(shù)的值。程序如下:x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;end(3).if語句的多分支選擇結(jié)構(gòu)執(zhí)行過程:先判斷表達(dá)式1的值非0就執(zhí)行下面的語句為0就執(zhí)行下一個判斷一直這樣做下去直到得出最后結(jié)果if條件1
語句組1;elseif條件2
語句組2;
……elseif條件m
語句組m;else
語句組n;end表達(dá)式1真語句1假表達(dá)式2表達(dá)式3語句4語句3語句2真真假假(4).if語句的二層嵌套結(jié)構(gòu)if(表達(dá)式1)if(表達(dá)式1_2)
語句1_1;
else語句1_2;endelseif(表達(dá)式2_1)
語句2_1;
else語句2_2;endend表達(dá)式1_2表達(dá)式1表達(dá)式2_1語句1_1語句1_2語句2_1語句2_2非000非00非0
if語句是根據(jù)表達(dá)式的值是否為0來判斷執(zhí)行哪一分支的,某些情況下,要根據(jù)表達(dá)式的不同值來判斷執(zhí)行哪一分支,如表達(dá)式的值為1,2,3時,分別執(zhí)行不同的操作。雖然也可以用多條if語句來完成這一工作,但Matlab語言中提供了一條switch語句,可以更方便的完成。
switch語句(開關(guān)分支語句)switch語句根據(jù)表達(dá)式的取值不同,分別執(zhí)行不同的語句,其語句格式為:switch表達(dá)式
case表達(dá)式1
語句組1;
case表達(dá)式2
語句組2;
……case表達(dá)式m
語句組m;
otherwise
語句組n;
endswitch表達(dá)式語句組1語句組2語句組n語句組…...E1E2Endefaultcase例6某商場對顧客所購買的商品實行打折銷售,標(biāo)準(zhǔn)如下(商品價格用price來表示):
price<200沒有折扣
200≤price<5003%折扣
500≤price<10005%折扣
1000≤price<25008%折扣
2500≤price<500010%折扣
5000≤price14%折扣輸入所售商品的價格,求其實際銷售價格。price=input('請輸入商品價格');switchfix(price/100)case{0,1}%價格小于200rate=0;case{2,3,4}%價格大于等于200但小于500rate=3/100;casenum2cell(5:9)%價格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%價格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%價格大于等于2500但小于5000rate=10/100;otherwise%價格大于等于5000rate=14/100;endprice=price*(1-rate)%輸出商品實際銷售價格
try語句(異常處理機制)語句格式為:try
語句組1catch
語句組2endtry語句先試探性執(zhí)行語句組1,如果語句組1在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉(zhuǎn)去執(zhí)行語句組2。例7:矩陣乘法運算要求兩矩陣的維數(shù)相容,否則會出錯。先求兩矩陣的乘積,若出錯,則自動轉(zhuǎn)去求兩矩陣的點乘。程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%顯示出錯原因3)循環(huán)結(jié)構(gòu)——重復(fù)執(zhí)行的一組語句
for語句表達(dá)式1表達(dá)式2循環(huán)體表達(dá)式3假真1.表達(dá)式為一個向量2.依次將向量的的各元素賦給循環(huán)變量3.執(zhí)行循環(huán)體語句,直至向量中各元素處理完畢。循環(huán)體語句;endfori=表達(dá)式例8:利用for循環(huán)求1!+2!+3!++5!的值
sum=0;fori=1:5pdr=1;fork=1:ipdr=pdr*k;endsum=sum+pdr;end例9:一個三位整數(shù)各位數(shù)字的立方和等于該數(shù)本身則稱該數(shù)為水仙花數(shù)。輸出全部水仙花數(shù)。程序如下form=100:999m1=fix(m/100);%求m的百位數(shù)字m2=rem(fix(m/10),10);%求m的十位數(shù)字m3=rem(m,10);%求m的個位數(shù)字ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend3)循環(huán)結(jié)構(gòu)——重復(fù)執(zhí)行的一組語句
for語句表達(dá)式1表達(dá)式2循環(huán)體表達(dá)式3假真循環(huán)體語句;end1.表達(dá)式為一個矩陣2.依次將矩陣的各列元素賦給循環(huán)變量3.執(zhí)行循環(huán)體語句,直至向量中各元素處理完畢。fori=矩陣表達(dá)式例10:寫出下列程序的執(zhí)行結(jié)果。s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;enddisp(s);
while語句while(表達(dá)式)
循環(huán)體語句
end表達(dá)式語句真假表達(dá)式語句表達(dá)式執(zhí)行過程:表達(dá)式一般是由邏輯運算和關(guān)系運算以及一般運算組成。若表達(dá)式的值非0
,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,直到表達(dá)式值為0,循環(huán)停止。例11:用while循環(huán)求1~100間整數(shù)的和
sum=0;i=1;whilei<=100sum=sum+i;i=i+1;endsumsum=5050例12:從鍵盤輸入若干個數(shù),當(dāng)輸入0時結(jié)束輸入,求這些數(shù)的平均值和它們之和。sum=0;cnt=0;val=input('Enteranumber(endin0):');while(val~=0)sum=sum+val;cnt=cnt+1;val=input('Enteranumber(endin0):');endif(cnt>0)summean=sum/cntendbreak語句和continue語句
與循環(huán)結(jié)構(gòu)相關(guān)的語句還有break語句和continue語句。break語句用于終止循環(huán)的執(zhí)行。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻鲅h(huán),繼續(xù)執(zhí)行循環(huán)語句的下一語句。continue語句控制跳過循環(huán)體中的某些語句。當(dāng)在循環(huán)體內(nèi)執(zhí)行到該語句時,程序?qū)⑻^循環(huán)體中所有剩下的語句,繼續(xù)下一次循環(huán)。例13:求[100,200]之間第一個能被21整除的整數(shù)。程序如下:forn=100:200ifrem(n,21)~=0continueendbreakendn1.input函數(shù):用于向計算機輸入一個參數(shù)。調(diào)用格式:A=input(提示信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版裝修公司抹灰施工合同范本
- 燃?xì)夤艿婪浪┕ず献鲄f(xié)議
- 環(huán)保工程承包管理合同
- 商務(wù)住宅租賃協(xié)議范本
- 北京溫泉度假村租賃協(xié)議
- 體育館內(nèi)部裝修協(xié)議
- 2024空調(diào)安裝服務(wù)合同
- 圖書館場地平整施工合同范本
- 河堤加固錨桿施工合同
- 建筑規(guī)劃甲方與施工方合同范本
- 電動牽引車設(shè)備安全操作規(guī)定
- 監(jiān)控系統(tǒng)說明
- 針對行政拘留的行政復(fù)議申請書
- 紫金礦業(yè)污染事件商業(yè)倫理分析
- 2022-2023學(xué)年河北省衡水市安平縣小升初總復(fù)習(xí)數(shù)學(xué)精選精練含答案
- 部編版語文六年級下冊第一單元多姿多彩的八方習(xí)俗大單元整體教學(xué)設(shè)計
- 2023春國家開放大學(xué)-02272數(shù)據(jù)結(jié)構(gòu)(本)-期末考試題帶答案
- Nikon Z6 Z7 數(shù)碼微單攝影技巧大全
- 神經(jīng)病學(xué)重癥肌無力課件
- 長安十二時辰主題街區(qū)案例詳解
- 個人年終工作總結(jié)PPT模板下載
評論
0/150
提交評論