




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、matlab 基本語句1.循環(huán)語句forfori=s1:s3:s2循環(huán)語句組end解釋:首先給i賦值s1;然后,判斷i是否介于s1與s2之間;如果是,則執(zhí)行循環(huán)語句組,i=i+s3(否則,退出循環(huán).);執(zhí)行完畢后,繼續(xù)下一次循環(huán)。例:求1到100的和,可以編程如下:sum=0fori=1:1:100sum=sum+iend這個程序也可以用while語句編程。注:for循環(huán)可以通過break語句結(jié)束整個for循環(huán).2.循環(huán)語句while例:sum=0;i=1;while(i,=,=,=(精確等于)5.邏輯表達(dá)式:|(或),&(且)6.n,m=size(A)(A為矩陣)這樣可以得到矩陣A的行和列數(shù)
2、n=length(A),可以得到向量A的分量個數(shù);如果是矩陣,則得到矩陣A的行與列數(shù)這兩個數(shù)字中的最大值。7.!后面接Dos命令可以調(diào)用運(yùn)行一個dos程序。8.常見函數(shù):poly():為求矩陣的特征多項(xiàng)式的函數(shù),得到的為特征多項(xiàng)式的各個系數(shù)。如a=1,0,0;0,2,0;0,0,3,則poly(a)1-611-6。相當(dāng)于poly(a)1入3+(-6)入2+11入+(-6)。compan():可以求矩陣的伴隨矩陣.sin()等三角函數(shù)。MATLAB在數(shù)學(xué)建模中的應(yīng)用(3)一、程序設(shè)計概述MATLAB所提供的程序設(shè)計語言是一種被稱為第四代編程語言的高級程序設(shè)計語言,其程序簡潔,可讀性很強(qiáng),容易調(diào)試
3、。同時,MATLAB的編程效率比C/C+語言要高得多。MATLAB編程環(huán)境有很多。常用的有:1.命令窗口2.word窗口3.M-文件編輯器,這是最好的編程環(huán)境。M-文件的擴(kuò)展名為“.m”。M-文件的格式分為兩種:l M-腳本文件,也可稱為“命令文件”。M-函數(shù)文件。這是matlab程序設(shè)計的主流。l保存后的文件可以隨時調(diào)用。二、MATLAB程序結(jié)構(gòu)按照現(xiàn)代程序設(shè)計的觀點(diǎn),任何算法功能都可以通過三種基本程序結(jié)構(gòu)來實(shí)現(xiàn),這三種結(jié)構(gòu)是:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。其中順序結(jié)構(gòu)是最基本的結(jié)構(gòu),它依照語句的自然順序逐條地執(zhí)行程序的各條語句。如果要根據(jù)輸入數(shù)據(jù)的實(shí)際情況進(jìn)行邏輯判斷,對不同的結(jié)果進(jìn)行不同
4、的處理,可以使用選擇結(jié)構(gòu)。如果需要反復(fù)執(zhí)行某些程序段落,可以使用循環(huán)結(jié)構(gòu)。1順序結(jié)構(gòu)順序結(jié)構(gòu)是由兩個程序模塊串接構(gòu)成。一個程序模塊是完成一項(xiàng)獨(dú)立功能的邏輯單元,它可以是一段程序、一個函數(shù),或者是一條語句??磮D可知,在順序結(jié)構(gòu)中,這兩個程序模塊是順序執(zhí)行的,即先執(zhí)行,然后執(zhí)行。實(shí)現(xiàn)順序結(jié)構(gòu)的方法非常簡單,只需將程序語句順序排列即可。2選擇結(jié)構(gòu)在MATLAB中,選擇結(jié)構(gòu)可由兩種語句來實(shí)現(xiàn)。(1)if語句if語句的最簡單用法為:if表達(dá)式;程序模塊;endif語句的另一種用法為:if表達(dá)式程序模塊1else程序模塊2end例1使用if語句判斷學(xué)生的成績是否及格。程序:clearn=input(輸入n
5、=)m=60;ifn,r=不及格elser=及格end練習(xí)一:將例1寫入M-文件編輯器,然后在commandwindow調(diào)用這個程序。當(dāng)針對多個條件進(jìn)行選擇時,可以采用下面的格式:if表達(dá)式1程序模塊1elseif表達(dá)式2程序模塊2elseif表達(dá)式n程序模塊nelse程序模塊n+1end例2將百分之的學(xué)生成績轉(zhuǎn)換為五分制輸出。程序:clearn=input(輸入n=)ifn=90chji=優(yōu)秀elseifn=80chji=良好elseifn=70chji=中等elseifn=60chji=及格elsechji=不及格end練習(xí)二:將例2寫入M-文件編輯器,然后在commandwindow調(diào)用
6、這個程序。(2)switch語句switch語句可以替代多分支的if語句,而且switch語句簡潔明了,可讀性更好。其格式為:switch表達(dá)式case數(shù)值1程序模塊1case數(shù)值2程序模塊2otherwise程序模塊nend其中的otherwise模塊可以省略。switch語句的執(zhí)行過程是:首先計算表達(dá)式的值,然后將其結(jié)果與每一個case后面的數(shù)值依次進(jìn)行比較,如果相等,則執(zhí)行該case的程序模塊;如果都不相等,則執(zhí)行otherwise模塊中的語句。如圖3所示。例3用switchcase開關(guān)結(jié)構(gòu)將百分制的學(xué)生成績轉(zhuǎn)換為五分制的成績輸出。程序:clearx=58switchfix(x/10)c
7、ase10,9y=優(yōu)秀case8y=良好case7y=中等case6y=及格otherwisey=不及格end練習(xí)三:將例3寫入M-文件編輯器,然后在commandwindow調(diào)用這個程序。3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)的流程圖如圖4所示它可以多次重復(fù)執(zhí)行某一組語句。循環(huán)是計算機(jī)解決問題的主要手段。在MATLAB中,循環(huán)結(jié)構(gòu)可以由兩種語句結(jié)構(gòu)實(shí)現(xiàn)。(1)forend 循環(huán)結(jié)構(gòu)。其格式為:fori=V,循環(huán)體結(jié)構(gòu),end其中V為一個行向量,循環(huán)變量i每次從V中取一個數(shù)值,執(zhí)行一次循環(huán)體的內(nèi)容,如此下去,直到完成V中的所有分量,就自動結(jié)束循環(huán)體的執(zhí)行。例4計算s=12+22+52。程序:a=125;s=0;f
8、ork=a,s=s+k2;end,s,該例題只是為了說明for語句的格式,事實(shí)上,用下面的語句求和更為簡單。命令:p=sum(a.2)練習(xí)四:建立MATLAB與word的連接,在新建的m-book中寫入上面的程序,并用notebook菜單運(yùn)行之。循環(huán)結(jié)構(gòu)里面還可以包含循環(huán)結(jié)構(gòu),形成多重循環(huán)。例5設(shè)計一個九九乘法表。程序:clearfori=1:9forj=1:9a(i,j)=i*j;endenda,練習(xí)五:直接在命令窗編寫上面的程序。試運(yùn)行下面的程序,并加以分析:程序:disp(九九乘法表),fori=1:9,forj=1:i,pi(j)=j*i;end,disp(pi),end(2)whil
9、eend循環(huán)結(jié)構(gòu)。其格式為:while(表達(dá)式)循環(huán)結(jié)構(gòu)體end例6求MATLAB的相對精度解:解題的思路是,讓y值不斷減小,直到MATLAB分不出1+y與1的差別為止。程序:y=1;while1+y1;y1=y;y=y/2;end,y1說明:for循環(huán)與while循環(huán)的區(qū)別是,for語句的循環(huán)次數(shù)是確定的,而while語句的循環(huán)次數(shù)是不確定的。一定要注意在循環(huán)結(jié)構(gòu)體內(nèi)設(shè)置“修改條件表達(dá)式的語句”,以免進(jìn)入“死循環(huán)”。一旦出現(xiàn)死循環(huán),在命令窗用ctrl+c可使程序中止。注意程序的可讀性。練習(xí)六:在M-文件編輯器內(nèi)編寫上面的腳本文件,并利用菜單或快捷按鈕運(yùn)行之。三、M-文件M文件是包含MATLA
10、B代碼的文件。M文件按其內(nèi)容和功能可分為腳本M文件和函數(shù)M文件這兩大類。1、腳本M文件腳本M文件是許多MATLAB代碼按順序組成的命令集合,不接受參數(shù)的輸入和輸出,與MATLAB工作區(qū)共享變量空間。腳本文件一般用來實(shí)現(xiàn)一個相對獨(dú)立的功能,比如對某個數(shù)據(jù)集進(jìn)行某種分析、繪圖,求解方程等等。前面的幾個例題都是腳本文件的類型。2、函數(shù)M文件MATLAB的M-函數(shù)是由function語句引導(dǎo)的,其基本格式如下:function輸出形參列表=函數(shù)名(輸入形參列表)注釋說明語句段,由%引導(dǎo);函數(shù)體語句函數(shù)文件需要在M-文件編輯器中編寫。寫完以后,按照當(dāng)前的搜索路徑保存。以后就可以隨時調(diào)用這個函數(shù)了。與腳本
11、M文件不同的是,調(diào)用函數(shù)M文件時需要輸入自變量的實(shí)際值。隨便打開一個M-文件看一看:openlsqlin編程實(shí)例例7.定義一個函數(shù)f(x)=sin(x)2,其中x以“度”為單位。然后再調(diào)用該函數(shù)。解:在M-文件編輯器內(nèi)寫入下面的文件:functiony=sinsd(x)%自變量x以“度”為單位。%白城師院%數(shù)學(xué)建模協(xié)會,2007-5-12a=x/180*pi;y=sin(a).2;將上面的文件保存之后即可隨時調(diào)用。命令:t=sinsd(45)t=0.5000命令:helpsinsd命令:t=sinsd(45,60)t=0.50000.7500表明該函數(shù)對元素群運(yùn)算有效。上面的語句相當(dāng)于命令:x
12、=45,60;t=sinsd(x)t=0.50000.7500命令:x=45,60;30,90;f=sinsd(x)f=0.50000.75000.25001.0000將源文件中最后一行的“.”去掉,再運(yùn)行以上兩條命令,我們會發(fā)現(xiàn)什么?例8.在MATLAB中,一個函數(shù)可以調(diào)用其它函數(shù),也可以調(diào)用自身,即遞歸調(diào)用。下面利用遞歸算法編寫一個函數(shù),用來計算Fibonacci數(shù)列的第k項(xiàng)。Fibonacci數(shù)列:1,1,2,3,5,8,13,21,M-函數(shù)文件:functiona=my_fibo(k)ifk=1|k=2,a=1;else,a=my_fibo(k-1)+my_fibo(k-2);end將
13、這個文件寫入M-文件編輯器并以名稱“my_fibo.m”保存,以后就可以調(diào)用這個函數(shù)。遞歸算法無疑是解決某一類問題的有效方法,但不宜濫用,因?yàn)樗倪\(yùn)算速度往往很慢。命令:tic,n=my_fibo(26),tocn=121393elapsed_time=34.4290下面我們嘗試用一般的循環(huán)語句來求解這個問題。程序:tic,n=1,1;fork=3:100,n(k)=n(k-1)+n(k-2);end,toc,elapsed_time=0.0100命令:n(1:26)ans=Columns1through81123581321Columns9through1634558914423337761
14、0987Columns17through24159725844181676510946 177112865746368Columns25through2675025121393例9.可變輸入變量個數(shù)的函數(shù)MATLAB提供的conv()函數(shù)可用來求兩個多項(xiàng)式的乘積。對于多個多項(xiàng)式的連乘,則不能直接使用此函數(shù),需要用該函數(shù)嵌套使用,用起來很不方便。下面編寫一個MATLAB函數(shù),使它能直接處理任意多個多項(xiàng)式的乘積問題。M-函數(shù)文件:functiona=convs(varargin)a=1;fori=1:length(varargin)a=conv(a,varargini);end形參varargin
15、是一個特殊的字符串,它把輸入變量列表轉(zhuǎn)換成一個元胞數(shù)組,每一個輸入變量都是這個元胞數(shù)組的一個元素。下面調(diào)用這個函數(shù),求解d=(x4+2x3+4x2+5)(x+2)(x2+2x+3)命令:p=1,2,4,0,5;q=1,2;f=1,2,3;d=convs(p,q,f)d=16193645443530命令:convs(p,q,f,1,1,1,3,1,1)ans=1115617637657867864852731590例10關(guān)于break、continue、return的用法。當(dāng)程序運(yùn)行過程中出現(xiàn)return命令時,程序停止運(yùn)行。break、continue用在循環(huán)語句中。在循環(huán)語句中,如果遇到break命令時,程序結(jié)束當(dāng)前的“for”或“while”循環(huán),轉(zhuǎn)而執(zhí)行它下面最近的end以下的語句;遇到continue時,跳過當(dāng)次循環(huán)而繼續(xù)下一次的循環(huán),例如,原定要循環(huán)5次,但在
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全生產(chǎn)法律知識講座
- 回收黃金合同(2篇)
- 人教版小學(xué)美術(shù)一年級上冊《認(rèn)識美術(shù)工具》說課(附教學(xué)反思、板書)課件
- 《走向未來》教學(xué)課件-2024-2025學(xué)年統(tǒng)編版初中道德與法治九年級下冊
- 出版物購銷合同范本
- 學(xué)生公寓管理制度培訓(xùn)
- 手術(shù)室消防安全知識
- 辛集中學(xué)高三上學(xué)期第三次月考語文試卷
- 阿克蘇職業(yè)技術(shù)學(xué)院《國際發(fā)展與國際組織概況》2023-2024學(xué)年第一學(xué)期期末試卷
- 隴東學(xué)院《電氣安全工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海楊浦區(qū)社區(qū)工作者考試真題2024
- 2024年烹飪與營養(yǎng)關(guān)系試題及答案
- 【公開課】語法填空真題分析及命題嘗試課件-2025屆高三英語二輪復(fù)習(xí)
- 2025年標(biāo)準(zhǔn)家政服務(wù)合同范本
- 2025年入團(tuán)相關(guān)考試題型及答案
- 如何在小學(xué)英語課堂教學(xué)中創(chuàng)設(shè)真實(shí)場景
- 形勢與政策(2025春)超星爾雅學(xué)習(xí)通答案滿分章節(jié)測試
- 【MOOC】高級綜合英語-北京交通大學(xué) 中國大學(xué)慕課MOOC答案
- 國企集團(tuán)公司各崗位廉潔風(fēng)險點(diǎn)防控表格(廉政)范本
- ISO28000:2022供應(yīng)鏈安全管理體系
- 2024年浪潮入職測評題和答案
評論
0/150
提交評論