版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章MATLAB7.x編程基礎(chǔ),3.1 M文件 3.2 輸入輸入語句 3.3 程序控制語句 3.4程序調(diào)試,3.1 M文件,MATLAB7.x的功能十分強(qiáng)大,一種能夠進(jìn)行數(shù)值運(yùn)算、符號(hào)運(yùn)算、矩陣運(yùn)算、繪圖等,另一種還可以進(jìn)行高級(jí)語言如C、FORTRAN等一樣編寫程序,完成命令功能,這些文件都以.m為后綴,稱它們?yōu)镸文件。,2020/9/13,4,3.1.1腳本M文件,在MATLAB7.x中處理一些簡(jiǎn)單的問題時(shí),可以直接在命令窗口輸入處理命令。當(dāng)命令比較多或者控制流程的復(fù)雜度增加后直接從命令窗口輸入就顯得比較復(fù)雜。此時(shí),用戶可以編寫簡(jiǎn)單的文本文件,將一系列的命令寫在該文件中,此文件通常以 .m
2、作為后綴,稱為腳本M文件。,2020/9/13,5,腳本式M文件舉例,繪制一個(gè)正弦曲線: %此文件用于繪制【2pi,2pi】區(qū)間的正弦曲線圖 x=-2*pi:0.05:2*pi; y=sin(x); plot(x,y,c+) legend(正弦曲線圖),2020/9/13,6,3.1.2函數(shù)式M文件,函數(shù)式M文件一般都要自帶參數(shù),并且有返回結(jié)果 。 函數(shù)式M文件的第一行都是以function開始,說明此文件是一個(gè)函數(shù)。函數(shù)式M文件中的變量都不是全局變量,僅在函數(shù)運(yùn)行期間有效,函數(shù)運(yùn)行完畢之后,它所定義的變量將從工作區(qū)間中清除。,2020/9/13,7,函數(shù)式M文件舉例,判斷某一年是否為閏年。
3、解:調(diào)出Medit窗口,在里邊輸入如下內(nèi)容。 %該函數(shù)用于判斷某一年是否為閏年 %使用格式為isleapea(y),其中y是用戶所要計(jì)算的年份 function isleapyear(year) sign=0; if rem(year,4)=0 sign=sign+1; end,if rem(year,100)=0 sign=sign-1; end if rem(year,400)=0 sign=sign+1; end if sign=1 fprintf(%4d year is a leap year.n,year) else fprintf(%4d year is not a leap ye
4、ar.n,year) end,3.1.3 M文件的建立與打開 M文件是一個(gè)文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器。 1建立新的M文件 為建立新的M文件,啟動(dòng)MATLAB文本編輯器有3種方法: (1) 菜單操作。從MATLAB主窗口的File菜單中選擇New菜單項(xiàng),再選擇M-file命令,屏幕上將出現(xiàn)MATLAB 文本編輯器窗口。 (2) 命令操作。在MATLAB命令窗口輸入命令edit,啟動(dòng)MATLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。 (3) 命令按鈕操作。單擊MATLAB主窗口工具欄上的New M-File命令按鈕,啟動(dòng)MA
5、TLAB文本編輯器后,輸入M文件的內(nèi)容并存盤。,2.打開已有的M文件 打開已有的M文件,也有3種方法: (1) 菜單操作。從MATLAB主窗口的File菜單中選擇Open命令,則屏幕出現(xiàn)Open對(duì)話框,在Open對(duì)話框中選中所需打開的M文件。在文檔窗口可以對(duì)打開的M文件進(jìn)行編輯修改,編輯完成后,將M文件存盤。 (2) 命令操作。在MATLAB命令窗口輸入命令edit 文件名,則打開指定的M文件。 (3) 命令按鈕操作。單擊MATLAB主窗口工具欄上的Open File命令按鈕,再從彈出的對(duì)話框中選擇所需打開的M文件。,3.2 輸入輸出語句(人機(jī)交互),1、屏幕輸入,格式:x=input(提示符
6、) - 等待輸入數(shù)據(jù) x=input(提示符,s) - 等待輸入字符串 比如:input( 輸入你心目中最好的大學(xué):) input(輸入你心目中最好的大學(xué):,s),2、菜單命令,格式: x=menu(標(biāo)題,菜單項(xiàng)1,菜單項(xiàng)2,) 返回菜單序號(hào)。 例如:x=menu(Title,Plus,Minus),3、暫停,格式:pause -等待敲擊鍵盤 pause(n) -等待n秒,4、交出鍵盤,格式:keyboad -程序執(zhí)行到該命令時(shí)暫停,在屏幕上顯示K ,這時(shí)用戶可輸入命令,查看中間結(jié)果,輸入return命令,則程序繼續(xù)執(zhí)行 。,5、中止執(zhí)行,6、顯示,格式:display(x) -在命令行顯示x
7、的內(nèi)容。,格式:C -強(qiáng)行停止程序的執(zhí)行,回到命令行。,例3.1: 分別建立命令文件和函數(shù)文件,將華氏溫度f轉(zhuǎn)換為攝氏溫度c。 程序1: 首先建立命令文件并以文件名f2c.m存盤。 clear; %清除工作空間中的變量 f=input(Input Fahrenheit temperature:); c=5*(f-32)/9 然后在MATLAB的命令窗口中輸入f2c,將會(huì)執(zhí)行該命令文件,執(zhí)行情況為: Input Fahrenheit temperature:73 c = 22.7778,程序2: 首先建立函數(shù)文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在M
8、ATLAB的命令窗口調(diào)用該函數(shù)文件。 clear; y=input(Input Fahrenheit temperature:); x=f2c(y) 輸出情況為: Input Fahrenheit temperature:70 c = 21.1111 x = 21.1111,3.3 程序控制語句,任何計(jì)算機(jī)語言都有三種基本結(jié)構(gòu),即: 順序結(jié)構(gòu):無控制語句 分支結(jié)構(gòu):if , switch 循環(huán)結(jié)構(gòu):for, while,1、順序結(jié)構(gòu):無控制語句,按照順序從頭至尾地執(zhí)行程序中的各條語 句。順序結(jié)構(gòu)一般不包含其他任何子語句或控制 語句。,例如: n = 0:100; x = sin(2*pi*0.
9、01*n); plot(x); hold on,2 分支結(jié)構(gòu):if , switch,if和switch語句用于根據(jù)條件選擇執(zhí)行相 應(yīng)的語句。,(1)if 語句(適合分支少),if 語句根據(jù)邏輯表達(dá)式的值來確定是否執(zhí) 行緊接的語句體。常見的調(diào)用格式有:,格式1:if 表達(dá)式 語句 end,格式2:if 表達(dá)式 語句1 else 語句2 end,格式3: if 表達(dá)式1 語句1 elseif 表達(dá)式2 語句2 else 語句3 end,例如: 判斷輸入數(shù)的奇偶性 n=input(n=); if rem(n,2)=0 display(n是偶數(shù)) else display(n是奇數(shù)) end,(2)
10、switch語句(適合分支多),格式: switch 表達(dá)式(標(biāo)量或表達(dá)式) case 值1 語句1 case 值2 語句2 otherwise 語句n end,例3.2:根據(jù)菜單選擇顯示不同的函數(shù) x=menu(波形,正弦,余弦,正切,余切); switch x case 1 ezplot(sin) case 2 ezplot(cos) case 3 ezplot(tan) case 4 ezplot(cot) end,3 循環(huán)結(jié)構(gòu),(1)for語句,格式:for 變量=初值:增量:終值 語句 end,例如:求100! x=1; for k=1:1:100 x=x*k; end,for語句更
11、一般的格式為: for 循環(huán)變量=矩陣表達(dá)式 循環(huán)體語句 end 執(zhí)行過程是依次將矩陣的各列元素賦 給循環(huán)變量,然后執(zhí)行循環(huán)體語句,直至各列元素處理完畢,例3.3: 寫出下列程序的執(zhí)行結(jié)果。 s=0; a=12,13,14;15,16,17;18,19,20;21,22,23; for k=a s=s+k; end disp(s); 運(yùn)行結(jié)果: 39 48 57 66,(2)while 語句,格式:while 表達(dá)式 語句 end,例如:計(jì)算1, ,1000的和 x=1; while x=1000 x=x+1; end,表達(dá)式成立(為真)時(shí),一直執(zhí)行語句,否則跳出循環(huán) .,例3.4: 從鍵盤輸
12、入若干個(gè)數(shù),當(dāng)輸入0時(shí)結(jié)束輸入,求這些數(shù)的平均值和它們之和。 程序如下: sum=0; cnt=0; val=input(Enter a number (end in 0):); while (val=0) sum=sum+val; cnt=cnt+1; val=input(Enter a number (end in 0):); end if (cnt 0) sum mean=sum/cnt end,(3) break和continue語句,用于循環(huán)語句(for,while): break:用于跳出循環(huán) continue :跳過后面的語句繼續(xù)循環(huán),例3.5:輸出100到200之間第一個(gè)能被7
13、整除的數(shù) for i=100:200 if rem(i,7)=0 continue end break end i,循環(huán)的嵌套 如果一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體又包括一個(gè)循環(huán)結(jié)構(gòu),就稱為循環(huán)的嵌套,或稱為多重循環(huán)結(jié)構(gòu)。,例3.6: 若一個(gè)數(shù)等于它的各個(gè)真因子之和,則稱該數(shù)為完數(shù),如6=1+2+3,所以6是完數(shù)。求1,500之間的全部完數(shù)。 for m=1:500 s=0; for k=1:m/2 if rem(m,k)=0 s=s+k; end end if m=s disp(m); end end,3.4 程序的調(diào)試 一般來說,應(yīng)用程序的錯(cuò)誤有兩類: 一類是語法錯(cuò)誤,另一類是運(yùn)行時(shí)的錯(cuò)誤。 語法錯(cuò)誤包括詞法或文法的錯(cuò)誤。例如函數(shù)名的拼寫錯(cuò)、表達(dá)式書寫錯(cuò)等。 程序運(yùn)行時(shí)的錯(cuò)誤是指程序的運(yùn)行結(jié)果有錯(cuò) 誤,這類錯(cuò)誤也稱為程序邏輯錯(cuò)誤。,3.4.1 調(diào)試注意事項(xiàng) MATLAB 的查錯(cuò)能力較強(qiáng),一般語法錯(cuò)誤,會(huì)直接報(bào)告。 如果語法沒有出錯(cuò),而得不到正確結(jié)果時(shí),一般需要調(diào)試 。 對(duì)于較小的程序只要仔細(xì)檢查程序即可
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療設(shè)備殘疾人輔助器具的質(zhì)量適配
- 云南國防工業(yè)職業(yè)技術(shù)學(xué)院《商務(wù)文書寫作(軍工公文)》2024-2025 學(xué)年第一學(xué)期期末試卷(管理專業(yè))
- 2026年山南市人民醫(yī)院招聘護(hù)士8人的備考題庫及完整答案詳解一套
- 2026年三明市清流縣少年兒童業(yè)余體校公開招聘緊缺急需專業(yè)工作人員備考題庫完整參考答案詳解
- 2026年崖州灣國家實(shí)驗(yàn)室科研助理(勞務(wù)派遣)招聘?jìng)淇碱}庫及答案詳解一套
- 2026年北航自動(dòng)化科學(xué)與電氣工程學(xué)院仿真工程與模型體系課題組聘用編管理人員F崗招聘?jìng)淇碱}庫及一套參考答案詳解
- 2026年東莞市建筑科學(xué)研究院有限公司招聘?jìng)淇碱}庫完整參考答案詳解
- 2026年博庫書城上海有限公司招聘財(cái)務(wù)負(fù)責(zé)人、新媒體運(yùn)營(yíng)、美陳與產(chǎn)品設(shè)計(jì)師備考題庫及答案詳解參考
- 2026年北京辰安備考題庫科技有限公司招聘?jìng)淇碱}庫及完整答案詳解1套
- 2026年恒豐理財(cái)有限責(zé)任公司社會(huì)招聘?jìng)淇碱}庫完整答案詳解
- 前置胎盤護(hù)理查房課件
- 肺癌中西醫(yī)結(jié)合診療指南
- 2024年居間服務(wù)合同:律師事務(wù)所合作與業(yè)務(wù)推廣
- 全球變暖課件高級(jí)
- 農(nóng)貿(mào)市場(chǎng)保潔服務(wù) 投標(biāo)方案(技術(shù)標(biāo) )
- 合作的合同書模板
- (正式版)FZ∕T 13061-2024 燈芯絨棉本色布
- 0.4kV配網(wǎng)不停電作業(yè)用工器具技術(shù)條件V11
- 滿腹經(jīng)綸相聲臺(tái)詞完整篇
- 2023年10月自考05678金融法試題及答案含評(píng)分標(biāo)準(zhǔn)
- 新蘇教版六年級(jí)科學(xué)上冊(cè)第一單元《物質(zhì)的變化》全部教案
評(píng)論
0/150
提交評(píng)論