![matlab基本語句_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/30/c53507a8-1d0d-43a5-867c-158eb1ff15fb/c53507a8-1d0d-43a5-867c-158eb1ff15fb1.gif)
![matlab基本語句_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/30/c53507a8-1d0d-43a5-867c-158eb1ff15fb/c53507a8-1d0d-43a5-867c-158eb1ff15fb2.gif)
![matlab基本語句_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/30/c53507a8-1d0d-43a5-867c-158eb1ff15fb/c53507a8-1d0d-43a5-867c-158eb1ff15fb3.gif)
![matlab基本語句_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/30/c53507a8-1d0d-43a5-867c-158eb1ff15fb/c53507a8-1d0d-43a5-867c-158eb1ff15fb4.gif)
![matlab基本語句_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/30/c53507a8-1d0d-43a5-867c-158eb1ff15fb/c53507a8-1d0d-43a5-867c-158eb1ff15fb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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.邏輯表達式:|(或),&(且)6.n,m=size(A)(A為矩陣)這樣可以得到矩陣A的行和列數(shù)
2、n=length(A),可以得到向量A的分量個數(shù);如果是矩陣,則得到矩陣A的行與列數(shù)這兩個數(shù)字中的最大值。7.!后面接Dos命令可以調(diào)用運行一個dos程序。8.常見函數(shù):poly():為求矩陣的特征多項式的函數(shù),得到的為特征多項式的各個系數(shù)。如a=1,0,0;0,2,0;0,0,3,則poly(a)1-611-6。相當于poly(a)1入3+(-6)入2+11入+(-6)。compan():可以求矩陣的伴隨矩陣.sin()等三角函數(shù)。MATLAB在數(shù)學(xué)建模中的應(yīng)用(3)一、程序設(shè)計概述MATLAB所提供的程序設(shè)計語言是一種被稱為第四代編程語言的高級程序設(shè)計語言,其程序簡潔,可讀性很強,容易調(diào)試
3、。同時,MATLAB的編程效率比C/C+語言要高得多。MATLAB編程環(huán)境有很多。常用的有:1.命令窗口2.word窗口3.M-文件編輯器,這是最好的編程環(huán)境。M-文件的擴展名為“.m”。M-文件的格式分為兩種:l M-腳本文件,也可稱為“命令文件”。M-函數(shù)文件。這是matlab程序設(shè)計的主流。l保存后的文件可以隨時調(diào)用。二、MATLAB程序結(jié)構(gòu)按照現(xiàn)代程序設(shè)計的觀點,任何算法功能都可以通過三種基本程序結(jié)構(gòu)來實現(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ù)的實際情況進行邏輯判斷,對不同的結(jié)果進行不同
4、的處理,可以使用選擇結(jié)構(gòu)。如果需要反復(fù)執(zhí)行某些程序段落,可以使用循環(huán)結(jié)構(gòu)。1順序結(jié)構(gòu)順序結(jié)構(gòu)是由兩個程序模塊串接構(gòu)成。一個程序模塊是完成一項獨立功能的邏輯單元,它可以是一段程序、一個函數(shù),或者是一條語句??磮D可知,在順序結(jié)構(gòu)中,這兩個程序模塊是順序執(zhí)行的,即先執(zhí)行,然后執(zhí)行。實現(xiàn)順序結(jié)構(gòu)的方法非常簡單,只需將程序語句順序排列即可。2選擇結(jié)構(gòu)在MATLAB中,選擇結(jié)構(gòu)可由兩種語句來實現(xiàn)。(1)if語句if語句的最簡單用法為:if表達式;程序模塊;endif語句的另一種用法為:if表達式程序模塊1else程序模塊2end例1使用if語句判斷學(xué)生的成績是否及格。程序:clearn=input(輸入n
5、=)m=60;ifn,r=不及格elser=及格end練習(xí)一:將例1寫入M-文件編輯器,然后在commandwindow調(diào)用這個程序。當針對多個條件進行選擇時,可以采用下面的格式:if表達式1程序模塊1elseif表達式2程序模塊2elseif表達式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表達式case數(shù)值1程序模塊1case數(shù)值2程序模塊2otherwise程序模塊nend其中的otherwise模塊可以省略。switch語句的執(zhí)行過程是:首先計算表達式的值,然后將其結(jié)果與每一個case后面的數(shù)值依次進行比較,如果相等,則執(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)是計算機解決問題的主要手段。在MATLAB中,循環(huán)結(jié)構(gòu)可以由兩種語句結(jié)構(gòu)實現(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語句的格式,事實上,用下面的語句求和更為簡單。命令:p=sum(a.2)練習(xí)四:建立MATLAB與word的連接,在新建的m-book中寫入上面的程序,并用notebook菜單運行之。循環(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í)五:直接在命令窗編寫上面的程序。試運行下面的程序,并加以分析:程序: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(表達式)循環(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è)置“修改條件表達式的語句”,以免進入“死循環(huán)”。一旦出現(xiàn)死循環(huán),在命令窗用ctrl+c可使程序中止。注意程序的可讀性。練習(xí)六:在M-文件編輯器內(nèi)編寫上面的腳本文件,并利用菜單或快捷按鈕運行之。三、M-文件M文件是包含MATLA
10、B代碼的文件。M文件按其內(nèi)容和功能可分為腳本M文件和函數(shù)M文件這兩大類。1、腳本M文件腳本M文件是許多MATLAB代碼按順序組成的命令集合,不接受參數(shù)的輸入和輸出,與MATLAB工作區(qū)共享變量空間。腳本文件一般用來實現(xiàn)一個相對獨立的功能,比如對某個數(shù)據(jù)集進行某種分析、繪圖,求解方程等等。前面的幾個例題都是腳本文件的類型。2、函數(shù)M文件MATLAB的M-函數(shù)是由function語句引導(dǎo)的,其基本格式如下:function輸出形參列表=函數(shù)名(輸入形參列表)注釋說明語句段,由%引導(dǎo);函數(shù)體語句函數(shù)文件需要在M-文件編輯器中編寫。寫完以后,按照當前的搜索路徑保存。以后就可以隨時調(diào)用這個函數(shù)了。與腳本
11、M文件不同的是,調(diào)用函數(shù)M文件時需要輸入自變量的實際值。隨便打開一個M-文件看一看:openlsqlin編程實例例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ù)對元素群運算有效。上面的語句相當于命令: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將源文件中最后一行的“.”去掉,再運行以上兩條命令,我們會發(fā)現(xiàn)什么?例8.在MATLAB中,一個函數(shù)可以調(diào)用其它函數(shù),也可以調(diào)用自身,即遞歸調(diào)用。下面利用遞歸算法編寫一個函數(shù),用來計算Fibonacci數(shù)列的第k項。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ù)。遞歸算法無疑是解決某一類問題的有效方法,但不宜濫用,因為它的運算速度往往很慢。命令: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ù)可用來求兩個多項式的乘積。對于多個多項式的連乘,則不能直接使用此函數(shù),需要用該函數(shù)嵌套使用,用起來很不方便。下面編寫一個MATLAB函數(shù),使它能直接處理任意多個多項式的乘積問題。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的用法。當程序運行過程中出現(xiàn)return命令時,程序停止運行。break、continue用在循環(huán)語句中。在循環(huán)語句中,如果遇到break命令時,程序結(jié)束當前的“for”或“while”循環(huán),轉(zhuǎn)而執(zhí)行它下面最近的end以下的語句;遇到continue時,跳過當次循環(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)生產(chǎn)協(xié)作合同范本
- 2025年單位購房協(xié)議樣本
- 2025年戶外雕塑設(shè)計與安裝合同協(xié)議
- 2025年節(jié)能服務(wù)項目規(guī)劃申請報告范文
- 2025年建筑工程鋼筋班組承包合同樣式
- 2025技術(shù)創(chuàng)新與資本投入?yún)f(xié)議范例策劃
- 2025年中外合資企業(yè)員工派遣協(xié)議范本
- 2025年崗位變動勞動合同細則
- 2025年住宅租賃合同解除
- 2025年公共建筑外墻涂裝工程承包合同范本
- 復(fù)工復(fù)產(chǎn)應(yīng)急預(yù)案
- 內(nèi)滿堂腳手架搭設(shè)施工方案
- 報關(guān)實務(wù)-教學(xué)課件 第一章 海關(guān)概念
- 醫(yī)院生活垃圾清運處理方案
- 老年心衰病人的護理
- 2025屆江蘇省無錫市天一中學(xué)高一上數(shù)學(xué)期末質(zhì)量檢測試題含解析
- 第四單元平行與相交(單元測試)-2024-2025學(xué)年四年級上冊數(shù)學(xué)青島版
- 數(shù)學(xué)家華羅庚課件
- 2024中智集團招聘重要崗位高頻難、易錯點500題模擬試題附帶答案詳解
- 《2024版 CSCO非小細胞肺癌診療指南》解讀
- 西方經(jīng)濟學(xué)考試題庫(含參考答案)
評論
0/150
提交評論