3 Matlab編程

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

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

15 積分

下載資源

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

資源描述:

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

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

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

3、單操作,(,File,New M-File,),命令操作,(,edit,M,文件名,),命令按鈕,(,快捷鍵,),打開已有的,M,文件,菜單操作,(,File,Open,),命令操作,(,edit,M,文件名,),命令按鈕,(,快捷鍵,),雙擊,M,文件,在命令窗口中輸入,f2cs,,,即可執(zhí)行該,M,文件。,例:,編寫一個腳本文件將華氏溫度轉(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,);,新建一個,M,文件,f2cs.m,,,內(nèi)容如下:,腳本文件運行后,文件中所產(chǎn)生的,所有變量都駐留在,Matlab,當(dāng)前工作空間,,可以用,whos,查看。,關(guān)系運算,小于,大于,=,大于等于,=,等于,=,不等于,比較大小,如果結(jié)論是,真,則返回,1,,否則返回,0,注意,=,與,=,的區(qū)別,關(guān)系操作符能用來比較兩個,同樣大小,的數(shù)組,或用來比較,一個數(shù)組和一個標(biāo)量,,在后一種情況,標(biāo)量和數(shù)組中的每一個元素相比較,比較結(jié)果與數(shù)組大小一樣。,關(guān)系,運算符,例:,關(guā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ù)輸出時采用的格式,常見的有,%d,(,整數(shù),),%e,(,實數(shù):采用科學(xué)計數(shù)法形式,),%f,(,實數(shù):采用浮點數(shù)形式,),%g,(,由系統(tǒng)自動選取上述

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

7、中,n,是延遲時間,以秒為單位;,若缺省,則將暫停程序,直到用戶按任意鍵后繼續(xù),pause off,屏蔽程序中所有,pause,的作用,pause on,打開,pause,的作用,選擇結(jié)構(gòu),是根據(jù)給定的條件成立或不成立,分別執(zhí)行不同的語句。,Matlab,用于實現(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ù)論中的一個有趣問題:任取一個正整數(shù),如果是偶數(shù),用,2,除,如果是奇數(shù),用,3,乘再加,1,,反復(fù)這個過程,直到所得到的數(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,首先計算,expression,的值,然后將它依次與各個,case,指令后的檢測值進(jìn)行比較,當(dāng)比較結(jié)果為真時,就執(zhí)行相應(yīng)的語句組,然后跳出,switch,結(jié)構(gòu)。,switch,后面的表達(dá)式,expression,的值可以是一個標(biāo)量或字符串。,switch,語句,otherwise,指令可以不出現(xiàn)。,如果所有的比較結(jié)果都為假,則執(zhí)行,otherwise,后面的語句組,然后跳出,switch,結(jié)構(gòu)。,循環(huán)結(jié)構(gòu),是按照給定的條件,重復(fù)執(zhí)行指定的語句。,Mat

11、lab,用于實現(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,時,求,y,的值,循環(huán)語句可以嵌套使用,while,循環(huán),while,expression,(,條件,),statement(,循環(huán)體,),end,不能在,for,循環(huán)體,內(nèi)改變循環(huán)變量的值,為了提高代碼的運行效率,應(yīng)盡可

12、能提高代碼的向量化程度,避免,for,循環(huán),的使用,如果預(yù)先就知道循環(huán)的次數(shù),則可以采用,for,循環(huán),;否則,如果預(yù)先無法確定循環(huán)的次數(shù),則可以使用,while,循環(huán),。,這個例子給出了計算,eps,的一種方法。,這里我們用大寫,EPS,,,因此系統(tǒng)中,eps,的值不會被覆蓋。當(dāng),EPS=,eps,時,條件仍成立;而當(dāng),EPS=eps/2,時,條件為假,退出循環(huán),所以最后應(yīng)有,EPS=eps/2,。,num,用來記錄循環(huán)次數(shù)。,計算,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,語句用于,退出,正在運行的腳本或函數(shù),通常用在函數(shù)文件中。,function,輸出形參列表,=,函數(shù)名,(,輸入形參列表,),%,注釋說明部分,(,可選,),函數(shù)體語句,(必須),第一行為,引導(dǎo)行,,表示該,M,文件是函數(shù)文件,函數(shù)名的命名規(guī)則與變量名相同,(,必須以字母開頭,),當(dāng),輸出形參,多于一個時,用,方括號,括起來,函數(shù)必須是一個

14、,單獨的,M,文件,函數(shù),文件名必須與函數(shù)名一致,以,百分號,開始的語句為,注釋語句,函數(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,其特點征是,它的兩條斜邊都是由數(shù)字,1,組成的,而其余的數(shù)則是等于它肩上的兩個數(shù)之和

16、。,函數(shù)調(diào)用的一般格式,輸出實參列表,=函數(shù)名,(,輸入實參列表,),函數(shù)調(diào)用時,,實參的順序,應(yīng)與函數(shù)定義時的,形參的順序,一致。,函數(shù)可以,嵌套調(diào)用,,即一個函數(shù)可以被其它函數(shù)調(diào)用,甚至可以被它自身調(diào)用,此時稱為,遞歸調(diào)用,。,函數(shù)所傳遞的參數(shù)具有可調(diào)性,,Matlab,用兩個永久變量,nargin,和,nargout,分別記錄調(diào)用該函數(shù)時的輸入實參和輸出實參的個數(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,%,計算,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)用計算,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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(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

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


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