

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、西南科技大學(xué)本科生課程備課教案計(jì)算機(jī)技術(shù)在安全工程中的應(yīng)用Matlab入門及應(yīng)用授課教師:徐中慧班級:專業(yè):安全技術(shù)及工程第七章邏輯函數(shù)與控制結(jié)構(gòu)課型:新授課教具:多媒體教學(xué)設(shè)備,matlab教學(xué)軟件一、目標(biāo)與要求能夠正確使用函數(shù)find,正解和正確使用if/else系列命令,理解switch/case結(jié)構(gòu),正確使用for循環(huán)和while循環(huán)。二、教學(xué)重點(diǎn)與難點(diǎn)本堂課教學(xué)的重點(diǎn)在于引導(dǎo)學(xué)生在編寫matlab程序時(shí)能夠熟練運(yùn)用控制結(jié)構(gòu)的相關(guān)函數(shù)實(shí)現(xiàn)相應(yīng)的功能。三、教學(xué)方法本課程主要通過講授法、演示法、練習(xí)法等相結(jié)合的方法來引導(dǎo)學(xué)生掌控本堂課的學(xué)習(xí)內(nèi)容。四、教學(xué)內(nèi)容課后習(xí)題講解%onea=1532
2、2;385;14382;b=156;c=121852;d=a(:,3)%twoe=b,d%threef=b;d%fourg=c(1:3);a%fiveh=a(1,3),c(1,2),b(2,1)(2)氣壓計(jì)主要用于測輦大氣壓強(qiáng).氣壓計(jì)中的液體一般密屢較高,過去常常使用朮銀.但由于水銀有奉現(xiàn)在常用苴它液體代替口測量的丸氣壓強(qiáng)等于液面高度h乘認(rèn)橄體密動再乘以重力加逋度生即戶二hpgf整理后得到液面高度hft=BPS現(xiàn)在有兩于氣壓計(jì),一個(gè)氣壓計(jì)中的義體是水夠密庫為1蕪601叩咄另一個(gè)氣壓計(jì)中的橄體是水,密1000kgm5a重力加19.01ul/s:h計(jì)算大氣壓強(qiáng)在。到lOQkpaS圍內(nèi)變化時(shí),兩個(gè)氣
3、圧計(jì)的板而高度.輸出為二維矩陣,計(jì)算前單位要統(tǒng)一丈氣壓強(qiáng)的單位是帕斯卡耐等于lkg/m%VariableDefinitionDensity_mercury=13560;g=9.81;p=0:10000:100000;%mercuryh_mercury=p./(Density_mercury*g)%waterh_water=h_mercury.*13560/1000%outputh=h_mercury,h_water-110426-123587823x=5645913y=4101272127_232289_(3)已知下列矩陣:z=llO22513 查找各矩陣中所有大于10的元素的序號,輸出結(jié)果用
4、單序號方法表示。 查找各矩陣中所有大于10的元素的序號,輸出結(jié)果用該元素的下標(biāo)表示。 查找各矩陣中所有大于10的元素。 查找各矩陣中所有大于10小于40的元素的序號,輸出結(jié)果用單序號方法表示。 查找各矩陣中所有大于10小于40的元素的序號,輸出結(jié)果用該元素的下標(biāo)表示 查找各矩陣中所有大于10小于40的元素用length和find查詢各矩陣中數(shù)值在0到10之間或70到80之間元素的個(gè)數(shù)。%VariableDefinitionx=110426;587823;5645913;232289;y=123;41012;72127;z=1022513;%onea=find(x10),b=find(y10),
5、c=find(z10),%twoa2,A2=find(x10),b2,B2=find(y10),c2,C2=find(z10),%threea3=x(a),b3=y(b),c3=z(c),%foura4=find(x10&x10&y10&z10&x10&y10&z0&x70&x0&y70&y0&z70&z21disp(Youhavereachedlegaldrinkingage!)elsedisp(Youvnotreachedlegaldrinkingage!)end Height=input(Enteravalueofyourheight:);ifheight155disp(Youhaver
6、eachedtheheight!)elsedisp(Youvnotreachedtheheight!)end size=input(Enteravalueofsize:);ifsize5.5disp(Itsnotaacceptedproduct!)elsedisp(Itsaacceptedproduct!)end或size=input(Enteravalueofsize:);ifsize5.3&size0&time0&time0&time260disp(freefly)elsedisp(Youinputaerrorinformation!)end接第六課內(nèi)容(4)switch/case結(jié)構(gòu)在M
7、atlab中,switch/case結(jié)構(gòu)可以根據(jù)一個(gè)給定參數(shù)的不同取值,執(zhí)行不同的命令。它和if/else/elseif類似,都屬于條件分支結(jié)構(gòu)。凡是能夠用if/else/elseif結(jié)構(gòu)實(shí)現(xiàn)的程序功能都可以用switch/case結(jié)構(gòu)實(shí)現(xiàn)。而且用switch/case結(jié)構(gòu)實(shí)現(xiàn)程序代碼更容易理解。switch/case結(jié)構(gòu)和elseif結(jié)構(gòu)的最大區(qū)別在于判斷的條件既可以是標(biāo)題也可以是字符串,在實(shí)際情況下,字符串形式的判斷條件比數(shù)字形式要常用。Switch/case的語法結(jié)構(gòu)如下:switchvariablecaseoption1codetobeexecutedifvariableisequal
8、tooption1caseoption2codetobeexecutedifvariableisequaltooption2caseoptionncodetobeexecutedifvariableisequaltooptionnotherwisecodetobeexecutedifvariableisnotequaltoanyoftheoptionsend實(shí)例創(chuàng)建函數(shù)用來顯示三個(gè)城市的飛機(jī)票價(jià)格city=input(Enterthenameofacity:,s)switchcitycaseBostondisp($345)caseDenverdisp($150)caseHonoluludisp
9、(Stayhomeandstudy)otherwisedisp(Notonfile)end語句中otherwise不是必需的,這條語句表示當(dāng)所有的情況都不滿足時(shí),程序的輸出結(jié)果。在C語言中也有switch/case結(jié)構(gòu)。Matlab和C語言的不同之處在于當(dāng)某一條件為true時(shí),Matlab不再驗(yàn)證其它條件是否滿足。例題世界上許多國家沒有對公制單位的使用做強(qiáng)制性規(guī)定,這些國家包括美國、英國、利比亞和緬甸。在美國既可以使用公制單位也可以使用英制單位。例如,老式汽車中既使用了公制單位也使用了英制單位,而1989年以后生產(chǎn)的新款汽車全部采用公制單位。酒的單位是升,牛奶的單位是加侖,距離的單位是英里,功
10、率的單位是瓦特。公制單位和英制單位經(jīng)常會發(fā)生混淆。如果駕車從美國到加拿大旅行就會發(fā)現(xiàn)在美國汽油的單位的加侖,而在加拿大汽油的單位是升。用switch/case結(jié)構(gòu)編寫一段程序,要求具有以下功能:由用戶輸入汽油的單位(升或加侖)提示用戶輸入想購買汽油的數(shù)量假設(shè)每加侖汽油2.89美元,計(jì)算汽油的總價(jià)1.問題描述計(jì)算汽油的總價(jià)2.輸入/輸出描述輸入:指定汽油的計(jì)量單位是加侖還是升以及購買的汽油的數(shù)量輸出:每加侖2.89美元,計(jì)算汽油的總價(jià)clear,clc%Definethecostpergallonrate=2.89;%Asktheusertoinputgallonsorlitersunit=in
11、put(Entergallonsorliters,s);%Usetoswitch/casetodeterminetheconversionfactorswitchunitcasegallonsfactor=1;caselitersfactor=0.264;otherwisedisp(Notavailable)factor=0;end%Asktheuserhowmuchgashe/shewouldliketobuyvolume=input(Enterthevolumeyouwouldliketobuyinn);%Calculatethecostofthegasiffactor=0cost=vol
12、ume*factor*rate;%Sendtheresultstothescreenfprintf(Thatwillbe$%5.2ffor%5.1f%sn,cost,volume,unit)end(5) menu結(jié)構(gòu)函數(shù)menu常和switch/case結(jié)構(gòu)一起使用。運(yùn)行后,在屏幕上會出現(xiàn)一個(gè)菜單,菜單的內(nèi)容可以由編程人員設(shè)定。函數(shù)menu的語法結(jié)構(gòu)為input=menu(Messagetotheuser,textforbutton1,textforbutton2,etc.)在前面飛機(jī)票的例子中如果使用menu,用戶就可以在菜單上選擇任意一個(gè)城市。由于用戶不可能選擇“notonfile”作為城
13、市名,因此原程序中可以去掉otherwise語句:city=menu(Selectacityfromthemenu:,Boston,Denver,Honolulu)switchcitycase1disp($345)case2disp($150)case3disp(Stayhomeandstudy)end注:使用菜單這種圖形化界面可以大大減少用戶出現(xiàn)拼寫錯(cuò)誤的可能性。同時(shí)在case語句中用序號代替了字符串。這個(gè)腳本程序運(yùn)行后,屏幕上會出現(xiàn)如下圖所示的菜單,用戶可以選擇任意一個(gè)選項(xiàng),matlab就會出現(xiàn)相關(guān)的結(jié)果。加油問題,釆用菜單方式在上例中用switch/case實(shí)現(xiàn)了以加侖或升為單位加油的功
14、能。程序中存在一個(gè)問題:即如果用戶拼寫錯(cuò)誤,程序?qū)o法運(yùn)行。例如:當(dāng)程序提示用戶輸入gallons或liters時(shí),用戶錯(cuò)誤的輸入litters程序?qū)⑤敵鯪otavailable如果在程序中使用菜單功能,那么用戶只需選擇按鍵就可以完成操作,這樣就避免了錯(cuò)誤地發(fā)生。修改后的程序仍然采用switch/case結(jié)構(gòu),不過需要添加菜單功能。1.問題描述計(jì)算汽油的總價(jià)2.輸入/輸出描述輸入使用菜單確定汽油的計(jì)量單位是加侖還是升輸出假設(shè)每加侖汽油2.89美元,計(jì)算汽油的總價(jià)clc,clear%Definethecostpergallonrate=2.89;%Asktheusertoinputgallons
15、orliters,usingamenudisp(Usethemenuboxtomakeyourselection)choice=menu(Measurethegasolineinlitersorgallons?,gallons,liters);switchchoicecase1factor=1;unit=gallons;case2factor=0.264;unit=liter;end%Asktheuserhowmuchgashe/shewouldliketobyvolume=input(Enterthevolumeyouwouldliketobuyin,unit,:n);%Calculatet
16、hecostofthegascost=volume*factor*rate;%Sendtheresultstothescreenfprintf(Thatwillbe$%5.2ffor%5.1f%sn,cost,volume,unit)(6) 循環(huán)結(jié)構(gòu)for循環(huán)循環(huán)結(jié)構(gòu)一般用于重復(fù)操作Matlab中有兩種不同的循環(huán)結(jié)構(gòu):for循環(huán)和while循環(huán)。如果已知循環(huán)的次數(shù),多采用for循環(huán)。如果需要滿足某一條件時(shí)停止循環(huán),多采用while循環(huán)。雖然在程序開發(fā)過程中廣泛米用循環(huán)結(jié)構(gòu),但是在編程時(shí)還是應(yīng)該盡量避免出現(xiàn)循環(huán)結(jié)構(gòu)。在Matlab中,可以使用find命令或矢量化的方法避免循環(huán)結(jié)構(gòu),所謂矢量化就是
17、操作過程中盡量用矢量代替元素。減少循環(huán)結(jié)構(gòu)有利于提高程序的運(yùn)行速度,簡化編程步驟。for循環(huán)結(jié)構(gòu)非常簡單。第一行標(biāo)識循環(huán),定義索引矩陣。循環(huán)體每執(zhí)行一次,索引值都會發(fā)生一次變化。循環(huán)標(biāo)識行后緊接著是執(zhí)行的代碼,最后是循環(huán)結(jié)束標(biāo)志end??傊?,for循環(huán)的一般結(jié)構(gòu)如下:forindex=matrixcommandstobeexecutedendEg:fork=135kendfork=l:3;a=5.Akend提示大部分計(jì)算機(jī)程序不具有Matlab中矩陣運(yùn)算能力,因此常利用循環(huán)體定義數(shù)組。實(shí)際上,在Matlab中利用下述代碼創(chuàng)建適量更簡單。 fork=l:5a(k)=k.A2end k=l:5,a
18、=k.2for循環(huán)常和辻語句配合使用例如:在下面這段程序中,統(tǒng)計(jì)考試成績?yōu)?0分以上的有多少人?scores=76459897;count=0;fork=l:length(scores)ifscores(k)90count=count+l;endenddisp(count)在大多數(shù)情況下,for循環(huán)中的索引矩陣是一個(gè)單行矩陣。如果索引矩陣是一個(gè)二維矩陣,matlab每次取矩陣中的一列作為索引值。fork=123;149;1827a=kendfor循環(huán)的用法總結(jié): 循環(huán)體以for語句開始,以end語句結(jié)束。 循環(huán)體的第一行用索引矩陣定義循環(huán)的次數(shù)。 for循環(huán)的索引必須是一個(gè)變量,每執(zhí)行一次循環(huán)
19、,索引值就會發(fā)生變化。 可以用前面介紹過的任何一種方法定義索引矩陣,但是一般情況下采用冒號方式定義。 如果索引矩陣是一個(gè)行矢量,那么每執(zhí)行循環(huán)一次,依次取矢量中的一個(gè)元素作為索引值。 如果索引矩陣是二維矩陣,那么每執(zhí)行循環(huán)一次,依次取矩陣中下一列的值,即在這種情況下索引值是一個(gè)列矢量。 for循環(huán)結(jié)束后,索引值等于最后一次執(zhí)行的數(shù)值。 對程序代碼矢量化可以避免for循環(huán)。例題用for循環(huán)計(jì)算階乘階乘就是1到N所有的數(shù)相乘。例如5的階乘就是1*2*3*4*5=120。在數(shù)學(xué)中,常用感嘆號表示階乘:5!就是5的階乘。Matlab的內(nèi)置函數(shù)factorial就可以計(jì)算階乘?,F(xiàn)在我們編一小段程序來計(jì)算階乘。x=input(Enteravalueforfactorialn);a=1;fork=1:xa=a*k;enddisp(a)(7) 循環(huán)結(jié)構(gòu)while循環(huán)while循環(huán)和for循環(huán)類似,兩者的最大區(qū)別在于while循環(huán)的次數(shù)是不固定的。只要判斷條件為true,循環(huán)體就會被執(zhí)行while循環(huán)的語法結(jié)構(gòu)如下:whilecriterioncommandstobeexecutedendEg:k=0;whilek3k=k+1;enddisp(k)實(shí)例While循環(huán)還可以檢查用戶的輸入錯(cuò)誤。例如:計(jì)算以10為底的對數(shù)時(shí)要求輸入數(shù)據(jù)為正數(shù)。用while循
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五美容美發(fā)店員工入股分紅及責(zé)任劃分合同
- 二零二五年度淘寶店鋪品牌授權(quán)使用合同
- 2025年中國手提式管道清洗機(jī)市場調(diào)查研究報(bào)告
- 二零二五年度租賃房屋租賃合同續(xù)租條件標(biāo)準(zhǔn)合同書
- 土地抵押借款合同(2025年度)生態(tài)農(nóng)業(yè)貸款
- 2025年中國塑料包裝透明盒市場調(diào)查研究報(bào)告
- 2025年中國U型上下無框玻璃門專用電插鎖市場調(diào)查研究報(bào)告
- 中國綠豆市場競爭現(xiàn)狀及營銷策略分析報(bào)告2025-2030年
- 2025至2031年中國麻椒粉行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國裝飾玻璃球行業(yè)投資前景及策略咨詢研究報(bào)告
- 新媒體藝術(shù)設(shè)計(jì)交互融合元宇宙
- 家長會課件:七年級家長會優(yōu)質(zhì)課件
- 《AutoCAD 中文版實(shí)例教程(AutoCAD 2020) (微課版)(第 2 版)》課件 馬連志 第1、2章 AutoCAD 2020 中文版入門、繪圖設(shè)置
- 小學(xué)一年級硬筆書法入門班教學(xué)課件
- 第三方檢查應(yīng)對措施方案
- 2020年財(cái)產(chǎn)保險(xiǎn)公司部門職責(zé)和崗位說明書
- TBA19利樂灌裝機(jī)操作手冊
- 人力資源管理咨詢實(shí)務(wù)人力資源總監(jiān)手冊
- ESC指導(dǎo)心包疾病最全
- (完整版)建筑模型設(shè)計(jì)與制作
- 08SS523建筑小區(qū)塑料排水檢查井
評論
0/150
提交評論