版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
教學內容Matlab第7周小課Matlab程序設計教學要求熟悉Matlab的基本編程方法熟練掌握Matlab語言M文件,程序控制的三種基本結構
第7周小課Matlab程序設計Matlab程序設計在歐美各高等學校,Matlab成為線性代數(shù)、自動控制理論、數(shù)字信號處理、時間序列分析、動態(tài)系統(tǒng)仿真、圖像處理等諸多課程的基本教學工具,成為學生必須掌握的基本技能。在設計研究單位和工業(yè)部門,Matlab已被廣泛地用于研究和解決各種具體的工程問題。可以預見,Matlab將在我國科學研究和工程應用中發(fā)揮越來越大的作用。第7周小課Matlab程序設計Matlab程序設計交互式命令執(zhí)行方式(命令窗口)
逐條輸入,逐條執(zhí)行,操作簡單、直觀,但速度慢,執(zhí)行過程不能保留。M文件的程序執(zhí)行方式
將命令編成程序存儲在一個文件中(M文件),依次運行文件中的命令,可以重復進行。Matlab程序設計有傳統(tǒng)高級語言的特征,又有自己獨特的特點,可以利用數(shù)據(jù)結構的特點,使程序結構簡單,編程效率高。第7周小課Matlab程序設計Matlab程序設計用Matlab語言編寫的程序,稱為M文件。
是由若干Matlab命令組合在一起構成的,它可以完成某些操作,也可以實現(xiàn)某種算法。
M文件根據(jù)調用方式的不同分為兩類:
命令文件(ScriptFile)函數(shù)文件(FunctionFile)
它們的擴展名都是.m第7周小課Matlab程序設計Matlab程序設計命令文件沒有輸入?yún)?shù),也不返回輸出參數(shù);函數(shù)文件可以帶輸入?yún)?shù),也可以返回輸出參數(shù)。命令文件對工作空間中的變量進行操作,文件中所有命令的執(zhí)行結果也返回工作空間中;函數(shù)文件中定義的變量為局部變量,當函數(shù)文件執(zhí)行完畢時,這些變量也被清除。命令文件可以直接運行;函數(shù)文件不能直接運行,要以函數(shù)調用的方式來調用它。第7周小課Matlab程序設計Matlab程序設計(命令文件exch)命令文件:clear;a=1:10;b=[11,12,13,14;15,16,17,18];c=a;a=b;b=c;ab將文件保存為exch,并在命令窗口執(zhí)行。執(zhí)行結果(將a,b的值互換)a=1112131415161718b=12345678910第7周小課Matlab程序設計Matlab程序設計(函數(shù)文件)fexch.mfunction[a,b]=exch(a,b)c=a;a=b;b=c;然后在命令窗口調用該函數(shù)文件:clear;x=1:10;y=[11,12,13,14;15,16,17,18];[x,y]=fexch(x,y)輸出結果為:a=1112131415161718b=12345678910函數(shù)參數(shù)a,b,c未保留在工作空間中,x,y保留在工作空間中。第7周小課Matlab程序設計Matlab程序設計(M文件)
M文件是一個文本文件,可以用任何編輯程序來建立和編輯,一般最常用的是使用Matlab提供的文本編輯器。
該編輯器是一個集編輯和調試于一體的工作環(huán)境。第7周小課Matlab程序設計Matlab程序設計(程序控制結構)順序結構選擇結構循環(huán)結構
任何復雜的程序都可以由這3種基本結構構成。第7周小課Matlab程序設計Matlab程序設計(順序結構)順序結構是指按照程序中語句的排列順序依次執(zhí)行,直到程序的最后一個語句。(最簡單的一種程序)1、數(shù)據(jù)的輸入從鍵盤輸入數(shù)據(jù),則可以使用input函數(shù)來進行,調用格式為:
A=input(提示信息,選項);其中提示信息為一個字符串,用于提示用戶輸入數(shù)據(jù)。
例如:從鍵盤輸入A矩陣,可以采用下面的命令來完成
A=input(‘輸入A矩陣’);
如果在input函數(shù)調用時采用’s’選項,則允許用戶輸入一個字符串。例:xm=input(‘What’’syourname?’,’s’);第7周小課Matlab程序設計Matlab程序設計(順序結構)2、數(shù)據(jù)的輸出
命令窗口輸出函數(shù)主要有disp函數(shù),其調用格式為:
disp(輸出項)其中輸出項既可以為字符串,也可以為矩陣。例如:
A=‘Hello,Tom’;disp(A)
輸出為:Hello,Tom
又如:A=[1,2,3;4,5,6;7,8,9];disp(A)
輸出為:
123456789%disp函數(shù)輸出格式更緊湊第7周小課Matlab程序設計Matlab程序設計(順序結構)例5.2求一元二次方程的根。由于Matlab能進行復數(shù)運算,所以不需要判斷方程的判別式,可直接根據(jù)求根公式求根。程序如下: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))]);程序輸出為:a=?4b=?78c=?54x1=-0.7188,x2=-18.7812第7周小課Matlab程序設計Matlab程序設計(順序結構)3、程序的暫停程序執(zhí)行過程中暫停,可用pause函數(shù),其調用格式為:
pause(延遲描述)
如果省略延遲時間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續(xù)執(zhí)行。
若要強行中止程序的運行可按Ctrl+C鍵。第7周小課Matlab程序設計Matlab程序設計(選擇結構)選擇結構是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。Matlab用于實現(xiàn)選擇結構的語句有if語句,switch語句和try語句。1.if語句在Matlab中,if語句有3種格式。(1)單分支if語句語句格式:if條件語句組end例如:當x是整數(shù)矩陣時,輸出x的值iffix(x)==xdisp(x);end第7周小課Matlab程序設計Matlab程序設計(選擇結構)(2)雙分支if語句語句格式:if條件語句組1else
語句組2end當條件成立時,執(zhí)行語句組1,否則執(zhí)行語句組2,然后再執(zhí)行if語句的后續(xù)語句。第7周小課Matlab程序設計Matlab程序設計(選擇結構)例
計算分段函數(shù):程序如下:x=input(‘請輸入x的值:');ifx==10y=cos(x+1)+sqrt(x*x+1);elsey=x*sqrt(x+sqrt(x));endy也可以用單分支if語句來實現(xiàn):x=input('請輸入x的值:');y=cos(x+1)+sqrt(x*x+1);ifx~=10y=x*sqrt(x+sqrt(x));endy第7周小課Matlab程序設計Matlab程序設計(選擇結構)(3)多分支if語句語句格式:if條件1
語句組1elseif條件2
語句組2…elseif條件m
語句組melse
語句組nend第7周小課Matlab程序設計Matlab程序設計(選擇結構)輸入一個字符,若為大寫字母,則輸出其對應的小寫字母;若為小寫字母,則輸出其對應的大寫字母;若為數(shù)字字符則輸出其對應的數(shù)值,若為其他字符則原樣輸出。程序如下:c=input(‘請輸入一個字符’,‘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);end第7周小課Matlab程序設計Matlab程序設計(選擇結構)2、switch語句switch語句根據(jù)表達式的取值不同,分別執(zhí)行不同的語句,其語句格式:switch表達式case表達式1
語句組1case表達式2
語句組2…case表達式m
語句組motherwise
語句組nend第7周小課Matlab程序設計Matlab程序設計(選擇結構)某商場對顧客所購買的商品實行打折銷售,標準如下:price<200沒有折扣200<=price<5003%折扣500<=price<10005%折扣1000<=price<25008%折扣2500<=price<500010%折扣5000<=price14%折扣輸入所售商品的價格,求其實際銷售價格。請同學們試著編程實現(xiàn)。第7周小課Matlab程序設計Matlab程序設計(選擇結構)price=input(‘請輸入商品價格’);switchfix(price/100)case{0,1}%價格小于200rate=0;case{2,3,4}rate=3/100;%價格大于等于200但小于500casenum2cell(5:9)rate=5/100;%價格大于等于500但小于1000casenum2cell(10:24)rate=8/100;%價格大于等于1000但小于2500casenum2cell(25:49)rate=10/100;%價格大于等于2500但小于5000otherwiserate=14/100;%價格大于等于5000endprice=price*(1-rate)%輸出商品實際銷售價格第7周小課Matlab程序設計Matlab程序設計(選擇結構)3.try語句
try語句是一種試探性執(zhí)行語句,其語句格式為:
try
語句組1catch
語句組2endtry語句先試探性執(zhí)行語句組1,如果在執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并轉去執(zhí)行語句組2.第7周小課Matlab程序設計Matlab程序設計(選擇結構)矩陣乘法運算要求兩矩陣的維數(shù)相容,否則會出錯。先求兩矩陣的乘積,若出錯則自動轉去求兩矩陣的點乘。程序如下:A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];tryC=A*B;catchC=A.*B;endClasterr%顯示出錯原因C=71627405572ans=Errorusing==>mtimesInnermatrixdimensionsmustagree.第7周小課Matlab程序設計Matlab程序設計(循環(huán)結構)循環(huán)是指按照給定的條件,重復執(zhí)行指定的語句,Matlab提供了兩種實現(xiàn)循環(huán)結構的語句:for語句和while語句。1、for語句for語句的格式為:for循環(huán)變量=表達式1:表達式2:表達式3
循環(huán)體語句end其中表達式1的值為循環(huán)變量的初值,表達式2的值為步長,表達式3的值為循環(huán)變量的終值。步長為1時,表達式2可以省略。第7周小課Matlab程序設計Matlab程序設計(循環(huán)結構)已知,當n=100時,求y的值。程序如下:y=0;n=100;fori=1:ny=y+1/i/i;endy輸出結果為:y=1.6350利用Matlab的特點,常用向量運算來代替循環(huán)操作,程序可以如下:n=100;i=1:n;f=1./i.^2;y=sum(f)第7周小課Matlab程序設計Matlab程序設計(循環(huán)結構)2、while語句while語句的一般格式為:while條件循環(huán)體語句end其執(zhí)行過程為:若條件成立,則執(zhí)行循環(huán)體語句,執(zhí)行后再判斷條件是否成立,如果不成立則跳出循環(huán)。第7周小課Matlab程序設計Matlab程序設計(循環(huán)結構)從鍵盤輸入若干個數(shù),當輸入0時結束輸入,求這些數(shù)的平均值和它們的和。sum=0;n=0;x=input(‘Enteranumber(endin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 京能集寧二期擴建2×660MW熱電聯(lián)產工程節(jié)能報告的審查意見
- 淮安磁性金屬材料項目可行性研究報告
- 養(yǎng)殖鵝合同范本
- 農業(yè)水果收購合同范例
- 主播發(fā)貨合同范本
- 保底銷量合同范本
- PP凈化塔工程合同范例
- 倉庫經營餐飲合同范例
- 2024年安全準入考試復習試題含答案
- 養(yǎng)牛銷售合同范本
- 2024年山東泰安市泰山財金投資集團有限公司招聘筆試參考題庫含答案解析
- 上海天文館分析
- 中醫(yī)睡眠養(yǎng)生中心方案
- 生活中的邏輯學
- 大學生返家鄉(xiāng)社會實踐報告
- 初中生物中考真題(合集)含答案
- 《醫(yī)學免疫學實驗》課件
- C139客戶開發(fā)管理模型
- 中考英語閱讀理解(含答案)30篇
- GB/T 5019.5-2023以云母為基的絕緣材料第5部分:電熱設備用硬質云母板
- 《工傷保險專題》課件
評論
0/150
提交評論