matlab-m文件和控制流.ppt_第1頁
matlab-m文件和控制流.ppt_第2頁
matlab-m文件和控制流.ppt_第3頁
matlab-m文件和控制流.ppt_第4頁
matlab-m文件和控制流.ppt_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、M文件和Matlab控制流,腳本文件和函數(shù)文件,M腳本文件,對于一些比較簡單的問題 ,在指令窗中直接輸入指令計算 。,對于復雜計算,采用腳本文件(Script file)最為合適 。,MATLAB只是按文件所寫的指令執(zhí)行 。,M腳本文件的特點是:,腳本文件的構成比較簡單,只是一串按用戶意圖排列而成的(包括控制流向指令在內的)MATLAB指令集合。,腳本文件運行后 ,所產生的所有變量都駐留在 MATLAB基本工作空間(Base workspace)中。只要用戶不使用清除指令(clear), MATLAB指令窗不關閉,這些變量將一直保存在基本工作空間中。,M文件有兩種形式 :腳本文件(Script

2、 File)和函數(shù)文件(Function File )。這兩種文件的擴展名,均為“ . m” 。,腳本文件和函數(shù)文件(續(xù)1) M函數(shù)文件,與腳本文件不同 ,函數(shù)文件猶如一個“黑箱”,把一些數(shù)據(jù)送進并經加工處理,再把結果送出來。,MATLAB提供的函數(shù)指令大部分都是由函數(shù)文件定義的。,M函數(shù)文件的特點:,從形式上看 ,與腳本文件不同 ,函數(shù)文件的笫一行總是以 “function”引導的“函數(shù)申明行”。,從運行上看 ,與腳本文件運行不同 ,每當函數(shù)文件運行, MATLAB就會專門為它開辟一個臨時工作空間,稱為函數(shù)工作空間( Function workspace) 。當執(zhí)行文件最后一條指令時 ,就結

3、束該函數(shù)文件的運行,同時該臨時函數(shù)空間及其所有的中間變量就立即被清除。,腳本文件和函數(shù)文件(續(xù)2) M文件的一般結構,由于從結構上看 ,腳本文件只是比函數(shù)文件少一個“函數(shù)申明行”,所以只須描述清楚函數(shù)文件的結構 。,典型 M函數(shù)文件的結構如下 :,函數(shù)申明行:位于函數(shù)文件的首行,以關鍵字 function 開頭,函數(shù)名以及函數(shù)的輸入輸出宗量都在這一行被定義。,笫一注釋行:緊隨函數(shù)申明行之后以%開頭笫一注釋行。該行供lookfor關鍵詞查詢和 help在線幫助使用 。,在線幫助文本區(qū) :笫一注釋行及其之后的連續(xù)以%開頭的所有注釋行構成整個在線幫助文本。,編寫和修改記錄:與在線幫助文本區(qū)相隔一個“

4、空”行,也以%開頭,標志編寫及修改該M文件的作者和日期等 。,函數(shù)體:為清晰起見,它與前面的注釋以“空”行相隔。,1、在Matlab指令窗口運行指令 edit,2、點擊Matlab工具條上的new_M-file圖標,3、依次點擊FileNEWM-file,4、在Command history 窗口中選一些命令行點鼠標右鍵選 Create M-file,創(chuàng)建新M文件的幾種方法,打開M文件的方法,在指令窗中運行 edit filename 點擊工具條上的 Open file 圖標 依次點擊菜單 FileOpen 使用快捷鍵 Crtl + O,執(zhí)行M文件的方法,在命令窗口中直接輸入M文件名執(zhí)行,在當

5、前目錄瀏覽器中右鍵點擊要運行的文件,選run,在M文件編輯器中點debug菜單run,Matlab控制流,for 循環(huán)結構 while循環(huán)結構 If - else - end 分支結構 Switch case 結構 try catch 結構,for 循環(huán)結構,For x = “一組數(shù)” (command) end,例如: for x = 1 : 10 ; % x 依次取1,2,3,10 y(x) = x; % 對每個x值,重復執(zhí)行此循環(huán)體 end ;,For循環(huán)中應該注意的,循環(huán)不會因為在循環(huán)體內對循環(huán)變量重新賦值而中斷 For后面跟的數(shù)組可以為任何合法的數(shù)組 循環(huán)可以嵌套 提高代碼的效率盡量

6、避免使用循環(huán)結構 盡量不要使用 i 和 j 作為循環(huán)變量。,while循環(huán)結構,While expression %表達式 (command) end,expression 如果為邏輯真就執(zhí)行command命令組,while循環(huán)結構,例:fibonacci (斐波納契數(shù)列)數(shù)組滿足fibonacci 規(guī)則: a k+2 = a k + a k+1 (k=1,2,) ; 且a1=a2=1 現(xiàn)要求出該數(shù)組第一個大于10000的元素。,例:fibonacci 數(shù)組滿足fibonacci 規(guī)則:a k+2 = a k + a k+1 (k=1,2,) ;且a1=a2=1現(xiàn)要求出該數(shù)組第一個大于1000

7、0的元素。,a(1)=1;a(2)=1;i=2; while a(i)=10000 a(i+1)=a(i-1)+a(i); i=i+1; end; i,a(i),關于while循環(huán)結構的一些說明,與for循環(huán)的區(qū)別在于while循環(huán)執(zhí)行的次數(shù)不確定 一般情況下表達式的值都是標量值,但也允許是數(shù)組,但只有數(shù)組所有元素為真時才會執(zhí)行循環(huán)體 如果while指令后的表達式是空數(shù)組,Matlab會認為表達式之為假而不執(zhí)行循環(huán)體,If - else - end 分支結構,If-case-end分支結構常見的使用方式,判斷條件expression為一個空數(shù)組,為假(false),另外我們可以用if判斷語句和

8、break指令配合使用強行終止for循環(huán)和while循環(huán),例:用for循環(huán)尋找fibonacc數(shù)組中第一個大于10000的元素,n=100 ; a= ones(1,n) ;%把一維數(shù)組a全部賦1 for i = 3 :n a(i)=a(i-1)+a(i-2); if a(i) = 10000 a(i), break; end; end,i,Switch case 結構,Switch ex % ex為一組標量或字符串 case test1 (command1) case testk (commandk) otherwise %此指令可以不存在 (commands) %不等于前面所有值執(zhí)行此組指令 end,try catc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論