MATLAB 5-1 第4章程序設(shè)計(jì)初步.ppt_第1頁(yè)
MATLAB 5-1 第4章程序設(shè)計(jì)初步.ppt_第2頁(yè)
MATLAB 5-1 第4章程序設(shè)計(jì)初步.ppt_第3頁(yè)
MATLAB 5-1 第4章程序設(shè)計(jì)初步.ppt_第4頁(yè)
MATLAB 5-1 第4章程序設(shè)計(jì)初步.ppt_第5頁(yè)
已閱讀5頁(yè),還剩74頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Matlab SDU,1,第4章,Matlab的初步程序設(shè)計(jì),并簡(jiǎn)要介紹了matlab SDU,2,m文件。如果用戶想靈活運(yùn)用MATLAB解決實(shí)際問(wèn)題,充分利用MATLAB的科技資源,就需要編輯M文件,M文件包含MATLAB語(yǔ)言代碼,稱(chēng)為M文件,擴(kuò)展名為M??梢允褂酶鞣N文本編輯器編輯M文件。Matlab SDU,3,1,Matlab的工作模式,指令驅(qū)動(dòng)模式matlab通常工作在指令驅(qū)動(dòng)模式,即當(dāng)用戶在matlab窗口中輸入單行指令時(shí),matlab立即處理指令并顯示結(jié)果,這就是MATLAB命令行模式。當(dāng)在命令行上操作時(shí),matlab窗口一次只允許在一行上執(zhí)行一個(gè)或幾個(gè)語(yǔ)句。MATLAB SDU,

2、4,例如:x1=0:10 X11=01234567 8 9 10 x2=0:336011 x2=0369 x3=11.53360-:0 x3=11.5000 8.5000 5.5000 2.5000,Matlab sdu,5,x1=0:10,x2=0333333333330這種工作模式稱(chēng)為程序文件模式。程序文件不能在指令窗口下創(chuàng)建,因?yàn)橹噶畲翱谝淮沃辉试S執(zhí)行一行中的一個(gè)或幾個(gè)語(yǔ)句。MATLAB SDU,7,2,m文件的創(chuàng)建,m文件的類(lèi)型是普通的文本文件,我們可以使用系統(tǒng)認(rèn)可的文本文件編輯器來(lái)創(chuàng)建m文件。例如各種編輯編輯器、記事本和窗口中的文字等。具體創(chuàng)建方法:點(diǎn)擊文件菜單新建m-file,ma

3、tlabsdu,8,matlabsdu,9,matlabsdu,10,2。單擊文件將工作區(qū)另存為,將工作區(qū)中的內(nèi)容保存到文件中。*使用各種編輯編輯器編輯編譯m文件。編輯用matlab編輯器編譯M文件。Word用word編輯m個(gè)文件。文件編輯器的設(shè)置可以通過(guò)在matlab命令窗口的選項(xiàng)菜單下點(diǎn)擊編輯首選項(xiàng)來(lái)選擇文件編輯器。matlab sdu,11,m文件編輯器的默認(rèn)設(shè)置是matlab編輯器,其他文本編輯器可以從文件、首選項(xiàng)編輯器/調(diào)試器中設(shè)置。注意:創(chuàng)建的m文件必須包含在matlab搜索路徑中,然后才能在MATLAB命令窗口中運(yùn)行。matlab SDU,12,matlab搜索路徑設(shè)置matla

4、b默認(rèn)路徑為c:matlabbin。使用路徑工具路徑瀏覽器設(shè)置當(dāng)前目錄“文件”-“設(shè)置路徑”方法設(shè)置當(dāng)前目錄,matlab SDU,13,2,matlab文件類(lèi)型,數(shù)據(jù)文件。mat mat文件是由MATLAB以標(biāo)準(zhǔn)二進(jìn)制格式保存的數(shù)據(jù)文件,可以在工作空間中保存有用的數(shù)據(jù)變量。Mat文件由保存和加載函數(shù)生成和調(diào)用。MATLAB SDU,14,2。m文件m文件的語(yǔ)法類(lèi)似于c語(yǔ)言,但它有自己的特點(diǎn)。它只是一個(gè)簡(jiǎn)單的ASCII文本文件,當(dāng)執(zhí)行程序時(shí),它一行一行地解釋運(yùn)行的程序。matlab是一種解釋性編程語(yǔ)言。有兩種獨(dú)立類(lèi)型的M文件稱(chēng)為命令文件,腳本可以調(diào)用M文件稱(chēng)為函數(shù)文件,MATLAB SDU,1

5、5,和腳本文件。命令文件簡(jiǎn)單的M文件命令文件實(shí)際上是一系列指令的集合,其結(jié)果與在命令窗口中逐行執(zhí)行文件中的所有指令是一樣的。沒(méi)有輸入和輸出參數(shù)。腳本本身反映了這樣一個(gè)事實(shí),即MATLAB只根據(jù)文件中的指令執(zhí)行。m腳本(命令)文件組成簡(jiǎn)單,其特點(diǎn)是它只是一系列按照用戶意圖排列的MATLAB指令集(包括流向控制指令)。腳本文件運(yùn)行后,所有生成的變量都駐留在MATLAB基本工作空間中。只要清除命令沒(méi)有用于清除這些變量,并且MATLAB命令窗口沒(méi)有關(guān)閉,這些變量將始終存儲(chǔ)在基本工作空間中。隨著MATLAB的誕生,基本工作空間應(yīng)運(yùn)而生。只有當(dāng)MATLAB關(guān)閉時(shí),基本空間才會(huì)被刪除。MATLAB SDU,

6、16,M函數(shù)文件,它不同于腳本(命令)文件,就像一個(gè)“黑盒”。從外部,我們只能看到輸入和計(jì)算結(jié)果發(fā)送給它,而內(nèi)部操作是隱藏的。MATLAB SDU,17,函數(shù)文件的特性:從形式上看,與腳本文件不同,函數(shù)文件的第一行總是由“函數(shù)”引導(dǎo)的“函數(shù)聲明行”。該行還列出了與外界聯(lián)系的函數(shù)的所有“標(biāo)稱(chēng)”輸入和輸出量。但是,對(duì)“輸入/輸出數(shù)量”的標(biāo)稱(chēng)數(shù)量沒(méi)有限制,也就是說(shuō),根本沒(méi)有輸入/輸出數(shù)量或任何數(shù)量。MATLAB允許使用比“標(biāo)稱(chēng)數(shù)”更少的輸入和輸出來(lái)實(shí)現(xiàn)函數(shù)調(diào)用。從運(yùn)行的角度來(lái)看,不同于腳本文件的運(yùn)行,每當(dāng)函數(shù)文件運(yùn)行時(shí),MATLAB都會(huì)為其創(chuàng)建一個(gè)臨時(shí)的工作空間,稱(chēng)為函數(shù)工作空間。所有中間變量都存儲(chǔ)

7、在函數(shù)工作空間中。當(dāng)文件的最后一條指令被執(zhí)行或遇到返回時(shí),函數(shù)文件的運(yùn)行結(jié)束,臨時(shí)函數(shù)空間及其所有中間變量立即被清除。函數(shù)空間在調(diào)用特定的m函數(shù)文件時(shí)生成,在調(diào)用結(jié)束時(shí)刪除。功能空間是相對(duì)獨(dú)立和暫時(shí)的。在MATLAB的整個(gè)運(yùn)行期間,可以生成任意數(shù)量的臨時(shí)函數(shù)空間。如果在函數(shù)文件中調(diào)用腳本文件,則腳本文件生成的所有變量都存儲(chǔ)在函數(shù)空間中,而不是基本空間中。MATLAB SDU,18,function m文件格式:function return variable=function name(input variable)備注語(yǔ)句段程序語(yǔ)句段特定規(guī)則:function m文件的第一行必須以funct

8、ion一詞作為引導(dǎo)詞,它必須遵循以下形式:function=()m文件的文件名必須是. m。程序中的變量都是局部變量,不存儲(chǔ)在工作空間中。其變量?jī)H在函數(shù)運(yùn)行期間有效。MATLAB SDU,19,M函數(shù)文件示例,函數(shù)sa=圓(r,S)%圓在S指定的直線上繪制半徑為r的圓,% r指定半徑為% S的數(shù)值指定線條顏色的字符串%sa圓面積%圓(r)用藍(lán)色實(shí)線繪制半徑為r的圓。%圓(R,S)畫(huà)一條半徑為R % SA=圓(R)的圓形線,和一個(gè)半徑為R % SA=圓(R,S)的藍(lán)色圓形面,并畫(huà)一個(gè)半徑為R %的S色圓形面,寫(xiě)于2001年4月7日,2002年8月27日修改。如果nargin2錯(cuò)誤(輸入太多。);

9、結(jié)束;如果NAR gin=1s=b;結(jié)束;MATLAB SDU,20,函數(shù)聲明行:位于函數(shù)文件的第一行,以MATLAB關(guān)鍵字Function開(kāi)始,函數(shù)名和函數(shù)的輸入輸出量在這一行定義。MATLAB SDU,21,H1行(第一個(gè)幫助文本行):第一個(gè)注釋行以%開(kāi)頭,緊接在函數(shù)聲明行之后。根據(jù)MATLAB自己文件的規(guī)則,H1行包含:函數(shù)文件名大寫(xiě);使用關(guān)鍵詞簡(jiǎn)要描述功能。這條H1線用于搜索關(guān)鍵詞查詢(xún)和幫助在線幫助。MATLAB SDU,22,在線幫助文本區(qū):H1行和所有后續(xù)注釋行以%開(kāi)始構(gòu)成整個(gè)在線幫助文本。它通常包括:函數(shù)輸入輸出量的含義,以及調(diào)用格式的描述。MATLAB SDU,23,編寫(xiě)和修改

10、記錄:該記錄與在線幫助文本區(qū)域用一個(gè)空行隔開(kāi),以%開(kāi)頭,表示編寫(xiě)和修改m文件的作者、日期和版本記錄。它用于軟件文件管理。MATLAB SDU,24,函數(shù)體):為清晰起見(jiàn),它與前面的注釋行之間用一個(gè)空行隔開(kāi)。該部分由MATLAB指令組成,實(shí)現(xiàn)了M函數(shù)文件的功能。它接收輸入數(shù)據(jù)并控制程序流以獲得輸出數(shù)據(jù)。為了便于閱讀和理解,還配置了適當(dāng)?shù)目招泻妥⑨?。從操作的角度?lái)看,只有函數(shù)聲明行和函數(shù)體是形成M函數(shù)文件所必需的。,MATLAB SDU,25,函數(shù)r=秩(,tol)%秩矩陣秩。% RANK(A)提供了矩陣A的線性%獨(dú)立行或列的數(shù)量的估計(jì)值,% RANK(A,tol)是大于tol的A %的奇異值的數(shù)

11、量。% RANK(A)使用默認(rèn)公差=最大(尺寸(A) *標(biāo)準(zhǔn)(A) * eps。% %類(lèi)別支持輸入: %浮動(dòng):雙,單%版權(quán)所有1984-2004 MathWorks,Inc . % $ Revision : 5.11.4.2 $ $ Date : 2004/04/10 23:30:08 $ s=SVD(A);如果nargin=1 tol=最大(尺寸(A) * eps(最大(s);結(jié)束r=總和(s tol);程序部分,matlab SDU,26,matlab內(nèi)置函數(shù)文件,matlab自定義函數(shù)文件,稱(chēng)為內(nèi)置函數(shù)文件。調(diào)用內(nèi)置函數(shù)的方法是使用函數(shù)名并給出相應(yīng)的入口和出口參數(shù)。例如:函數(shù)調(diào)用格式:y

12、=sin(2*x)在實(shí)際應(yīng)用中:x=0:2 * pi/180:2 * pi;Y=sin (2 * x)圖(x,y)和m函數(shù)文件分為兩類(lèi):內(nèi)置和自定義,MATLAB SDU,27,和sqrt(x)求x的平方根,abs(x)求x的絕對(duì)值,det(a)求行列式值,等等。Matlab有大量?jī)?nèi)置的數(shù)學(xué)函數(shù),我們可以調(diào)用它們進(jìn)行數(shù)值運(yùn)算和符號(hào)運(yùn)算。Matlab SDU,28,二函數(shù)m文件需要輸入變量和返回輸出變量。MATLAB用戶可以根據(jù)自己的需要編輯自己的m文件,可以像調(diào)用庫(kù)函數(shù)一樣方便,從而大大擴(kuò)展了MATLAB的功能。對(duì)于一些特殊的問(wèn)題,例如創(chuàng)建許多M函數(shù)文件,可以形成一個(gè)新的工具箱。用matlab

13、語(yǔ)言創(chuàng)建和定義新的matlab函數(shù)的功能體現(xiàn)了matlab語(yǔ)言強(qiáng)大的擴(kuò)展功能。MATLAB SDU,29,M函數(shù)類(lèi)型,I函數(shù)句柄,以及函數(shù)句柄都不是用函數(shù)文件自動(dòng)形成的文件“屬性”,而是只能通過(guò)特殊定義生成。定義函數(shù)句柄有兩種方法:使用符號(hào);* *使用轉(zhuǎn)換函數(shù)str2func。為了觀察函數(shù)句柄的內(nèi)涵,應(yīng)該使用特殊的指令函數(shù)。示例:為MATLAB的“內(nèi)置”函數(shù)創(chuàng)建一個(gè)函數(shù)句柄,并觀察其內(nèi)涵。辛=罪;%(1)創(chuàng)建類(lèi)(辛)%(2)類(lèi)型判別CC=函數(shù)(辛)%(3)借助指令觀察內(nèi)涵函數(shù),matlab SDU,30,函數(shù)句柄是matlab獨(dú)特的語(yǔ)言結(jié)構(gòu)。本發(fā)明的優(yōu)點(diǎn)是:方便實(shí)現(xiàn)函數(shù)間的相互調(diào)用,兼容函數(shù)加

14、載的所有模式,拓寬了包括局部函數(shù)在內(nèi)的子函數(shù)的應(yīng)用范圍,提高了函數(shù)調(diào)用的可靠性,減少了程序設(shè)計(jì)中的冗余,提高了重復(fù)執(zhí)行的效率,并結(jié)合定義數(shù)據(jù),MATLAB SDU,31,函數(shù)句柄,根據(jù)內(nèi)置函數(shù),創(chuàng)建函數(shù)句柄FUNHANDLE=FUNCTION_NAME匿名函數(shù),創(chuàng)建函數(shù)句柄FUNHANDLE=(ARGIST)EXPRESSion。如果函數(shù)句柄不包含任何參數(shù),后一個(gè)列表必須用空括號(hào)表示,并且調(diào)用也必須使用空括號(hào)。這個(gè)例子通過(guò)函數(shù)及其句柄演示了一些基本用法。%(1)創(chuàng)建函數(shù)句柄FH handle=str func(sin);%(2)SIN(pi/4)中函數(shù)句柄的情況“數(shù)值計(jì)算”ys=sin(pi/4)%函數(shù)直接調(diào)用“老式”YFLOWN=FEVAL(fHandle,pi/4)指令的YFLOWD=FEVAL(SIN,PI/4)指令,“新式”調(diào)用% %定義符號(hào)常量yss=sin(alpha)%函數(shù)直接調(diào)用YFLOWD=FEVAL(SIN,Alpha)指令的“老式”調(diào)用YFLOWS=FEVAL(fHandle,Alpha)指令的“新式”調(diào)用Xold=fmin band(sin,0,2*pi)%“舊式”函數(shù)指令調(diào)用Xnew=fmin band(fhhandle,0,2*pi)%“新式”函數(shù)指令調(diào)用,MATLAB SDU,33,M函數(shù)類(lèi)型,II主函數(shù)和子函數(shù)的多種函數(shù)代碼,第一種是主函數(shù),其

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論