版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Matlab SDU,1,第4章,Matlab的初步程序設(shè)計,并簡要介紹了matlab SDU,2,m文件。如果用戶想靈活運用MATLAB解決實際問題,充分利用MATLAB的科技資源,就需要編輯M文件,M文件包含MATLAB語言代碼,稱為M文件,擴展名為M??梢允褂酶鞣N文本編輯器編輯M文件。Matlab SDU,3,1,Matlab的工作模式,指令驅(qū)動模式matlab通常工作在指令驅(qū)動模式,即當(dāng)用戶在matlab窗口中輸入單行指令時,matlab立即處理指令并顯示結(jié)果,這就是MATLAB命令行模式。當(dāng)在命令行上操作時,matlab窗口一次只允許在一行上執(zhí)行一個或幾個語句。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這種工作模式稱為程序文件模式。程序文件不能在指令窗口下創(chuàng)建,因為指令窗口一次只允許執(zhí)行一行中的一個或幾個語句。MATLAB SDU,7,2,m文件的創(chuàng)建,m文件的類型是普通的文本文件,我們可以使用系統(tǒng)認(rèn)可的文本文件編輯器來創(chuàng)建m文件。例如各種編輯編輯器、記事本和窗口中的文字等。具體創(chuàng)建方法:點擊文件菜單新建m-file,ma
3、tlabsdu,8,matlabsdu,9,matlabsdu,10,2。單擊文件將工作區(qū)另存為,將工作區(qū)中的內(nèi)容保存到文件中。*使用各種編輯編輯器編輯編譯m文件。編輯用matlab編輯器編譯M文件。Word用word編輯m個文件。文件編輯器的設(shè)置可以通過在matlab命令窗口的選項菜單下點擊編輯首選項來選擇文件編輯器。matlab sdu,11,m文件編輯器的默認(rèn)設(shè)置是matlab編輯器,其他文本編輯器可以從文件、首選項編輯器/調(diào)試器中設(shè)置。注意:創(chuàng)建的m文件必須包含在matlab搜索路徑中,然后才能在MATLAB命令窗口中運行。matlab SDU,12,matlab搜索路徑設(shè)置matla
4、b默認(rèn)路徑為c:matlabbin。使用路徑工具路徑瀏覽器設(shè)置當(dāng)前目錄“文件”-“設(shè)置路徑”方法設(shè)置當(dāng)前目錄,matlab SDU,13,2,matlab文件類型,數(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文件的語法類似于c語言,但它有自己的特點。它只是一個簡單的ASCII文本文件,當(dāng)執(zhí)行程序時,它一行一行地解釋運行的程序。matlab是一種解釋性編程語言。有兩種獨立類型的M文件稱為命令文件,腳本可以調(diào)用M文件稱為函數(shù)文件,MATLAB SDU,1
5、5,和腳本文件。命令文件簡單的M文件命令文件實際上是一系列指令的集合,其結(jié)果與在命令窗口中逐行執(zhí)行文件中的所有指令是一樣的。沒有輸入和輸出參數(shù)。腳本本身反映了這樣一個事實,即MATLAB只根據(jù)文件中的指令執(zhí)行。m腳本(命令)文件組成簡單,其特點是它只是一系列按照用戶意圖排列的MATLAB指令集(包括流向控制指令)。腳本文件運行后,所有生成的變量都駐留在MATLAB基本工作空間中。只要清除命令沒有用于清除這些變量,并且MATLAB命令窗口沒有關(guān)閉,這些變量將始終存儲在基本工作空間中。隨著MATLAB的誕生,基本工作空間應(yīng)運而生。只有當(dāng)MATLAB關(guān)閉時,基本空間才會被刪除。MATLAB SDU,
6、16,M函數(shù)文件,它不同于腳本(命令)文件,就像一個“黑盒”。從外部,我們只能看到輸入和計算結(jié)果發(fā)送給它,而內(nèi)部操作是隱藏的。MATLAB SDU,17,函數(shù)文件的特性:從形式上看,與腳本文件不同,函數(shù)文件的第一行總是由“函數(shù)”引導(dǎo)的“函數(shù)聲明行”。該行還列出了與外界聯(lián)系的函數(shù)的所有“標(biāo)稱”輸入和輸出量。但是,對“輸入/輸出數(shù)量”的標(biāo)稱數(shù)量沒有限制,也就是說,根本沒有輸入/輸出數(shù)量或任何數(shù)量。MATLAB允許使用比“標(biāo)稱數(shù)”更少的輸入和輸出來實現(xiàn)函數(shù)調(diào)用。從運行的角度來看,不同于腳本文件的運行,每當(dāng)函數(shù)文件運行時,MATLAB都會為其創(chuàng)建一個臨時的工作空間,稱為函數(shù)工作空間。所有中間變量都存儲
7、在函數(shù)工作空間中。當(dāng)文件的最后一條指令被執(zhí)行或遇到返回時,函數(shù)文件的運行結(jié)束,臨時函數(shù)空間及其所有中間變量立即被清除。函數(shù)空間在調(diào)用特定的m函數(shù)文件時生成,在調(diào)用結(jié)束時刪除。功能空間是相對獨立和暫時的。在MATLAB的整個運行期間,可以生成任意數(shù)量的臨時函數(shù)空間。如果在函數(shù)文件中調(diào)用腳本文件,則腳本文件生成的所有變量都存儲在函數(shù)空間中,而不是基本空間中。MATLAB SDU,18,function m文件格式:function return variable=function name(input variable)備注語句段程序語句段特定規(guī)則:function m文件的第一行必須以funct
8、ion一詞作為引導(dǎo)詞,它必須遵循以下形式:function=()m文件的文件名必須是. m。程序中的變量都是局部變量,不存儲在工作空間中。其變量僅在函數(shù)運行期間有效。MATLAB SDU,19,M函數(shù)文件示例,函數(shù)sa=圓(r,S)%圓在S指定的直線上繪制半徑為r的圓,% r指定半徑為% S的數(shù)值指定線條顏色的字符串%sa圓面積%圓(r)用藍(lán)色實線繪制半徑為r的圓。%圓(R,S)畫一條半徑為R % SA=圓(R)的圓形線,和一個半徑為R % SA=圓(R,S)的藍(lán)色圓形面,并畫一個半徑為R %的S色圓形面,寫于2001年4月7日,2002年8月27日修改。如果nargin2錯誤(輸入太多。);
9、結(jié)束;如果NAR gin=1s=b;結(jié)束;MATLAB SDU,20,函數(shù)聲明行:位于函數(shù)文件的第一行,以MATLAB關(guān)鍵字Function開始,函數(shù)名和函數(shù)的輸入輸出量在這一行定義。MATLAB SDU,21,H1行(第一個幫助文本行):第一個注釋行以%開頭,緊接在函數(shù)聲明行之后。根據(jù)MATLAB自己文件的規(guī)則,H1行包含:函數(shù)文件名大寫;使用關(guān)鍵詞簡要描述功能。這條H1線用于搜索關(guān)鍵詞查詢和幫助在線幫助。MATLAB SDU,22,在線幫助文本區(qū):H1行和所有后續(xù)注釋行以%開始構(gòu)成整個在線幫助文本。它通常包括:函數(shù)輸入輸出量的含義,以及調(diào)用格式的描述。MATLAB SDU,23,編寫和修改
10、記錄:該記錄與在線幫助文本區(qū)域用一個空行隔開,以%開頭,表示編寫和修改m文件的作者、日期和版本記錄。它用于軟件文件管理。MATLAB SDU,24,函數(shù)體):為清晰起見,它與前面的注釋行之間用一個空行隔開。該部分由MATLAB指令組成,實現(xiàn)了M函數(shù)文件的功能。它接收輸入數(shù)據(jù)并控制程序流以獲得輸出數(shù)據(jù)。為了便于閱讀和理解,還配置了適當(dāng)?shù)目招泻妥⑨?。從操作的角度來看,只有函?shù)聲明行和函數(shù)體是形成M函數(shù)文件所必需的。,MATLAB SDU,25,函數(shù)r=秩(,tol)%秩矩陣秩。% RANK(A)提供了矩陣A的線性%獨立行或列的數(shù)量的估計值,% RANK(A,tol)是大于tol的A %的奇異值的數(shù)
11、量。% RANK(A)使用默認(rèn)公差=最大(尺寸(A) *標(biāo)準(zhǔn)(A) * eps。% %類別支持輸入: %浮動:雙,單%版權(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ù)文件,稱為內(nèi)置函數(shù)文件。調(diào)用內(nèi)置函數(shù)的方法是使用函數(shù)名并給出相應(yīng)的入口和出口參數(shù)。例如:函數(shù)調(diào)用格式:y
12、=sin(2*x)在實際應(yīng)用中:x=0:2 * pi/180:2 * pi;Y=sin (2 * x)圖(x,y)和m函數(shù)文件分為兩類:內(nèi)置和自定義,MATLAB SDU,27,和sqrt(x)求x的平方根,abs(x)求x的絕對值,det(a)求行列式值,等等。Matlab有大量內(nèi)置的數(shù)學(xué)函數(shù),我們可以調(diào)用它們進(jìn)行數(shù)值運算和符號運算。Matlab SDU,28,二函數(shù)m文件需要輸入變量和返回輸出變量。MATLAB用戶可以根據(jù)自己的需要編輯自己的m文件,可以像調(diào)用庫函數(shù)一樣方便,從而大大擴展了MATLAB的功能。對于一些特殊的問題,例如創(chuàng)建許多M函數(shù)文件,可以形成一個新的工具箱。用matlab
13、語言創(chuàng)建和定義新的matlab函數(shù)的功能體現(xiàn)了matlab語言強大的擴展功能。MATLAB SDU,29,M函數(shù)類型,I函數(shù)句柄,以及函數(shù)句柄都不是用函數(shù)文件自動形成的文件“屬性”,而是只能通過特殊定義生成。定義函數(shù)句柄有兩種方法:使用符號;* *使用轉(zhuǎn)換函數(shù)str2func。為了觀察函數(shù)句柄的內(nèi)涵,應(yīng)該使用特殊的指令函數(shù)。示例:為MATLAB的“內(nèi)置”函數(shù)創(chuàng)建一個函數(shù)句柄,并觀察其內(nèi)涵。辛=罪;%(1)創(chuàng)建類(辛)%(2)類型判別CC=函數(shù)(辛)%(3)借助指令觀察內(nèi)涵函數(shù),matlab SDU,30,函數(shù)句柄是matlab獨特的語言結(jié)構(gòu)。本發(fā)明的優(yōu)點是:方便實現(xiàn)函數(shù)間的相互調(diào)用,兼容函數(shù)加
14、載的所有模式,拓寬了包括局部函數(shù)在內(nèi)的子函數(shù)的應(yīng)用范圍,提高了函數(shù)調(diào)用的可靠性,減少了程序設(shè)計中的冗余,提高了重復(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ù),后一個列表必須用空括號表示,并且調(diào)用也必須使用空括號。這個例子通過函數(shù)及其句柄演示了一些基本用法。%(1)創(chuàng)建函數(shù)句柄FH handle=str func(sin);%(2)SIN(pi/4)中函數(shù)句柄的情況“數(shù)值計算”ys=sin(pi/4)%函數(shù)直接調(diào)用“老式”YFLOWN=FEVAL(fHandle,pi/4)指令的YFLOWD=FEVAL(SIN,PI/4)指令,“新式”調(dià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ù)類型,II主函數(shù)和子函數(shù)的多種函數(shù)代碼,第一種是主函數(shù),其
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年綠色施工技術(shù)在隧道工程中的應(yīng)用
- 2026年電氣防爆防護措施的實施
- 2026年綠色建筑中光伏系統(tǒng)的集成設(shè)計
- 貨運駕駛員超載安全培訓(xùn)
- 貨車司機安全培訓(xùn)標(biāo)語課件
- 生物D打印技術(shù)助力個性化治療
- 醫(yī)療行業(yè)市場預(yù)測與展望
- 2026年河南地礦職業(yè)學(xué)院單招職業(yè)技能考試模擬試題帶答案解析
- 2026年福州工商學(xué)院單招綜合素質(zhì)筆試參考題庫帶答案解析
- 醫(yī)療禮儀:醫(yī)護人員禮儀修養(yǎng)的重要性
- 2026年廣東農(nóng)墾火星農(nóng)場有限公司公開招聘作業(yè)區(qū)管理人員備考題庫及參考答案詳解
- 技術(shù)股入股協(xié)議書
- DL-T5796-2019水電工程邊坡安全監(jiān)測技術(shù)規(guī)范
- 魁北克腰痛障礙評分表(Quebec-Baclain-Disability-Scale-QBPDS)
- 八年級上冊歷史【全冊】知識點梳理背誦版
- 《工會法》及《勞動合同法》教學(xué)課件
- 股權(quán)轉(zhuǎn)讓協(xié)議書常電子版(2篇)
- 2023年副主任醫(yī)師(副高)-推拿學(xué)(副高)考試歷年高頻考點真題演練附帶含答案
- 產(chǎn)品質(zhì)量法課件
- 《食品包裝學(xué)(第三版)》教學(xué)PPT課件整套電子講義
- plc電機正反轉(zhuǎn)-教案
評論
0/150
提交評論