3 Matlab編程

上傳人:fgh****35 文檔編號(hào):248165199 上傳時(shí)間:2024-10-22 格式:PPT 頁數(shù):44 大?。?73KB
收藏 版權(quán)申訴 舉報(bào) 下載
3 Matlab編程_第1頁
第1頁 / 共44頁
3 Matlab編程_第2頁
第2頁 / 共44頁
3 Matlab編程_第3頁
第3頁 / 共44頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《3 Matlab編程》由會(huì)員分享,可在線閱讀,更多相關(guān)《3 Matlab編程(44頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,*,Matlab,編程入門,Matlab,編程簡(jiǎn)介,Matlab,作為一種廣泛應(yīng)用于科學(xué)計(jì)算的工具軟件,不僅具有強(qiáng)大的數(shù)值計(jì)算、符號(hào)計(jì)算、矩陣運(yùn)算能力和豐富的繪圖功能,同時(shí)也具有和,C,、,FORTRAN,等高級(jí)語言一樣進(jìn)行程序設(shè)計(jì)。,在,Matlab,程序設(shè)計(jì)中,要充分利用,Matlab,數(shù)據(jù)結(jié)構(gòu)的特點(diǎn),提高編程效率。,利用,Matlab,的程序控制功能,可以將有關(guān),Matlab,命令編成程序存儲(chǔ)在一個(gè)文件中,(,M,文件,),,然后在命令窗口中運(yùn)行該文件,,Matlab,就會(huì)自動(dòng)依次執(zhí)行文件中的命令,直到全部命令執(zhí)行完畢。,用,Matl

2、ab,語言編寫的程序稱為,M,文件,。,M,文件是由若干,Matlab,命令組合在一起構(gòu)成的,它可以完成某些操作,也可以實(shí)現(xiàn)某種算法。事實(shí)上,,Matlab,提供的內(nèi)部函數(shù)以及各種工具箱,都是利用,Matlab,語言開發(fā)的,M,文件。用戶也可以結(jié)合自己的工作需要,開發(fā)自己的程序或工具箱。,M,文件根據(jù)調(diào)用方式的不同可以分為兩類:,Script,:,腳本文件,/,命令文件,Function,:,函數(shù)文件,M,文件,M,文件以,.,m,為擴(kuò)展名。,M,文件是一個(gè)文本文件,可以用任何文本編輯器來建立和編輯,通常使用,Matlab,自帶的,M,文件編輯器。,M,文件的建立與打開,新建一個(gè),M,文件,菜

3、單操作,(,File,New M-File,),命令操作,(,edit,M,文件名,),命令按鈕,(,快捷鍵,),打開已有的,M,文件,菜單操作,(,File,Open,),命令操作,(,edit,M,文件名,),命令按鈕,(,快捷鍵,),雙擊,M,文件,在命令窗口中輸入,f2cs,,,即可執(zhí)行該,M,文件。,例:,編寫一個(gè)腳本文件將華氏溫度轉(zhuǎn)化為攝氏溫度,腳本文件舉例,clear;,%,清除當(dāng)前工作空間中的變量,f=,input(,Please,input Fahrenheit temperature:,);,c=5*(f-32)/9;,fprintf(The,centigrade temp

4、erature is%,gn,c,);,新建一個(gè),M,文件,f2cs.m,,,內(nèi)容如下:,腳本文件運(yùn)行后,文件中所產(chǎn)生的,所有變量都駐留在,Matlab,當(dāng)前工作空間,,可以用,whos,查看。,關(guān)系運(yùn)算,小于,大于,=,大于等于,=,等于,=,不等于,比較大小,如果結(jié)論是,真,則返回,1,,否則返回,0,注意,=,與,=,的區(qū)別,關(guān)系操作符能用來比較兩個(gè),同樣大小,的數(shù)組,或用來比較,一個(gè)數(shù)組和一個(gè)標(biāo)量,,在后一種情況,標(biāo)量和數(shù)組中的每一個(gè)元素相比較,比較結(jié)果與數(shù)組大小一樣。,關(guān)系,運(yùn)算符,例:,關(guān)系運(yùn)算,舉例,2+2=4,23,A=1 3 5;2 0 6;,B=3 1 0;2 4 6;,A

5、=B,x=5 0;4 2;,x,B=,1 2 3;4 5 6;7 8 9,;,disp,(B,),數(shù)據(jù)輸出,disp,數(shù)據(jù)的輸出:,disp,A=,Hello,Tom,!,;,disp,(A,),例:,數(shù)據(jù)輸出,fprintf,fprintf,(fid,format,variables,),按指定的,格式,將變量的值輸出到指定的,文件,數(shù)據(jù)的輸出:,fprintf,fid,為文件句柄,若缺省,則將變量的值輸出到屏幕上,format,用來指定數(shù)據(jù)輸出時(shí)采用的格式,常見的有,%d,(,整數(shù),),%e,(,實(shí)數(shù):采用科學(xué)計(jì)數(shù)法形式,),%f,(,實(shí)數(shù):采用浮點(diǎn)數(shù)形式,),%g,(,由系統(tǒng)自動(dòng)選取上述

6、兩種格式之一,),%s,(,輸出字符串,),format,中還可以使用一些特殊格式,如:,n,(,換行,),t,(,制表符,),b,(,退格,),(,反斜桿,),%,(,百分號(hào),),數(shù)據(jù)輸出,fprintf,a=,Hello,;b=2.4;c=100*pi;,fprintf,(,a=%,s,b,=%,f,c,=%,en,a,b,c,),例:,format,中的輸出格式要與輸出變量一一對(duì)應(yīng),可以沒有輸出變量,fprintf,(,Today is Mondayn,),例:,pause,程序的暫停,:,pause,pause,或,pause(n,),若想強(qiáng)行終止程序的運(yùn)行,可以使用,Ctrl+c,其

7、中,n,是延遲時(shí)間,以秒為單位;,若缺省,則將暫停程序,直到用戶按任意鍵后繼續(xù),pause off,屏蔽程序中所有,pause,的作用,pause on,打開,pause,的作用,選擇結(jié)構(gòu),是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。,Matlab,用于實(shí)現(xiàn)選擇結(jié)構(gòu)的語句有,if,語句,和,switch,語句,。,選擇結(jié)構(gòu),單分支結(jié)構(gòu),if,expression,(,條件),statements(,語句組),end,if,條件語句,if,expression(,條件),statements1(,語句組1),else,statements2(,語句組2),end,雙分支結(jié)構(gòu),if,expr

8、ession1,(,條件,1,),statements1(,語句組,1),elseif,expression2(,條件,2,),statements2(,語句組,2),.,elseif,expressionm,(,條件,m,),statementsm,(,語句組,m,),else,statements(,語句組,),end,多分支結(jié)構(gòu),if,條件語句,if,語句舉例,數(shù)論中的一個(gè)有趣問題:任取一個(gè)正整數(shù),如果是偶數(shù),用,2,除,如果是奇數(shù),用,3,乘再加,1,,反復(fù)這個(gè)過程,直到所得到的數(shù)為,1,。,問:是否存在使該過程永不中止的整數(shù),?,while,1,n=,input,(Please,en

9、ter,n(nonpositive,quit):),;,if,n1,if,rem,(n,2)=0,n=n/2,;,else,n=3*n+1,;,end,fprintf,(n,n=%d,n),;,end,fprintf,(n,n=%d is not we need!continue.n,nt,),;,end,if,語句舉例,根據(jù)表達(dá)式的不同取值,分別執(zhí)行不同的語句。,switch,expression(,表達(dá)式),case,value1(,表達(dá)式1),statement1(,語句組1),case,value2(,表達(dá)式2),statement2(,語句組2),.,case,valuem,(,表達(dá)

10、式,m),statementm,(,語句組,m),otherwise,statement(,語句組),end,switch,語句,Matlab,首先計(jì)算,expression,的值,然后將它依次與各個(gè),case,指令后的檢測(cè)值進(jìn)行比較,當(dāng)比較結(jié)果為真時(shí),就執(zhí)行相應(yīng)的語句組,然后跳出,switch,結(jié)構(gòu)。,switch,后面的表達(dá)式,expression,的值可以是一個(gè)標(biāo)量或字符串。,switch,語句,otherwise,指令可以不出現(xiàn)。,如果所有的比較結(jié)果都為假,則執(zhí)行,otherwise,后面的語句組,然后跳出,switch,結(jié)構(gòu)。,循環(huán)結(jié)構(gòu),是按照給定的條件,重復(fù)執(zhí)行指定的語句。,Mat

11、lab,用于實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句有,for,語句,和,while,語句,循環(huán)結(jié)構(gòu),for,variable=expression,statement(,循環(huán)體,),end,循環(huán)變量,表達(dá)式,expression,可以是行向量,也可以是矩陣,for,循環(huán),clear;,y=0;n=100;,for,k=1:n,y=y+1/(2*k-1);,end,例:,已知,,當(dāng),n,=100,時(shí),求,y,的值,循環(huán)語句可以嵌套使用,while,循環(huán),while,expression,(,條件,),statement(,循環(huán)體,),end,不能在,for,循環(huán)體,內(nèi)改變循環(huán)變量的值,為了提高代碼的運(yùn)行效率,應(yīng)盡可

12、能提高代碼的向量化程度,避免,for,循環(huán),的使用,如果預(yù)先就知道循環(huán)的次數(shù),則可以采用,for,循環(huán),;否則,如果預(yù)先無法確定循環(huán)的次數(shù),則可以使用,while,循環(huán),。,這個(gè)例子給出了計(jì)算,eps,的一種方法。,這里我們用大寫,EPS,,,因此系統(tǒng)中,eps,的值不會(huì)被覆蓋。當(dāng),EPS=,eps,時(shí),條件仍成立;而當(dāng),EPS=eps/2,時(shí),條件為假,退出循環(huán),所以最后應(yīng)有,EPS=eps/2,。,num,用來記錄循環(huán)次數(shù)。,計(jì)算,Matlab,中,eps,值,while,循環(huán)舉例,num=0;EPS=1;,while,(1+EPS)1,EPS=EPS/2;,num=num+1;,end,

13、break,和,continue,break,語句用于,終止循環(huán),的執(zhí)行,即跳出最內(nèi)層循環(huán),continue,語句用于結(jié)束,本次循環(huán),,進(jìn)行下一次循環(huán),break,和,continue,一般與,if,語句配合使用,其它流控制語句,return,return,語句用于,退出,正在運(yùn)行的腳本或函數(shù),通常用在函數(shù)文件中。,function,輸出形參列表,=,函數(shù)名,(,輸入形參列表,),%,注釋說明部分,(,可選,),函數(shù)體語句,(必須),第一行為,引導(dǎo)行,,表示該,M,文件是函數(shù)文件,函數(shù)名的命名規(guī)則與變量名相同,(,必須以字母開頭,),當(dāng),輸出形參,多于一個(gè)時(shí),用,方括號(hào),括起來,函數(shù)必須是一個(gè)

14、,單獨(dú)的,M,文件,函數(shù),文件名必須與函數(shù)名一致,以,百分號(hào),開始的語句為,注釋語句,函數(shù)文件,函數(shù)文件由,function,語句引導(dǎo),function,y=,myfliplr,(x,),%,returns X with row preserved and columns,%,flipped in the left/right direction,%,%X=1 2 3 becomes 3 2 1,%4 5 6 6 5 4,%,num_col,=size(x,2);,%,取,x,的列數(shù),y=x,(:,num_col:-1:1),;,函數(shù)文件舉例,myfliplr.m,function,print

15、yh(n,),%,打印楊輝三角形,本函數(shù)沒有輸出參數(shù),yh,=1;,disp(yh,);,if n=1,return,;end,yh,=1,1;,disp(yh,);,for k=3:n,yh_old,=,yh,;k2=,ceil,(k/2);,for l=2:k2,yh(l,)=yh_old(l-1)+yh_old(l);,end,yh(k2+1:k)=yh(k-k2:-1:1);,disp(yh,);,end,函數(shù)文件舉例,printyh.m,楊輝三角形,1111211331146411510,10,51,其特點(diǎn)征是,它的兩條斜邊都是由數(shù)字,1,組成的,而其余的數(shù)則是等于它肩上的兩個(gè)數(shù)之和

16、。,函數(shù)調(diào)用的一般格式,輸出實(shí)參列表,=函數(shù)名,(,輸入實(shí)參列表,),函數(shù)調(diào)用時(shí),,實(shí)參的順序,應(yīng)與函數(shù)定義時(shí)的,形參的順序,一致。,函數(shù)可以,嵌套調(diào)用,,即一個(gè)函數(shù)可以被其它函數(shù)調(diào)用,甚至可以被它自身調(diào)用,此時(shí)稱為,遞歸調(diào)用,。,函數(shù)所傳遞的參數(shù)具有可調(diào)性,,Matlab,用兩個(gè)永久變量,nargin,和,nargout,分別記錄調(diào)用該函數(shù)時(shí)的輸入實(shí)參和輸出實(shí)參的個(gè)數(shù)。,函數(shù)調(diào)用,%,函數(shù)文件,myfactor.m,function,f=,myfactor,(n,),if(n=1),f=1;,else,f=n*,myfactor,(n-1);,end,%,main.m,%,計(jì)算,s=1!+2!+3!+4!+5!,%,clear;,s=0;,for i=1:5,s=,s+,myfactor,(i,);,end,fprintf,(s=%g,n,s,),例:利用函數(shù)的遞歸調(diào)用計(jì)算,n,!,遞歸函數(shù)舉例,%,ex4argin.m,function out=ex4argin(a,b),if(,nargin,=1,),out=a;,elseif,(,nargin,=2,),out=a*b;,en

展開閱讀全文
溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!