




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、MATLAB程序設(shè)計專題M文件有兩種形式M腳本文件M函數(shù)文件2022/7/19MATLAB_程序設(shè)計1M腳本文件的特點1、腳本文件中的命令格式和前后位置與在命令窗口中輸入相同。2、運行腳本文件時,只是按順序從文件中讀取一條條命令,送到MATLAB命令窗口中去執(zhí)行。2022/7/19MATLAB_程序設(shè)計2M腳本文件的特點3、與在命令窗口中直接運行命令一樣,腳本文件運行產(chǎn)生的變量都是駐留在MATLAB的工作空間(workspace)中,可以很方便地查看變量;腳本文件的命令也可以訪問工作空間的所有數(shù)據(jù),因此要注意避免變量的覆蓋而造成程序出錯。2022/7/19MATLAB_程序設(shè)計3M函數(shù)文件的基
2、本格式函數(shù)聲明行2022/7/19MATLAB_程序設(shè)計4function 輸出變量列表 = 函數(shù)名(輸入變量列表) H1行(用%開頭的注釋行)在線幫助文本 (用%開頭)編寫和修改記錄(用%開頭) 函數(shù)體創(chuàng)建M函數(shù)文件并調(diào)用的步驟編寫函數(shù)代碼將函數(shù)文件保存為“函數(shù)名.m”。在命令窗口輸入命令調(diào)用程序2022/7/19MATLAB_程序設(shè)計5M函數(shù)文件的特點1、第一行總是以“function”引導(dǎo)的函數(shù)聲明行;2、函數(shù)文件在運行過程中產(chǎn)生的變量都存放在函數(shù)本身的工作空間; 3、當(dāng)文件執(zhí)行完最后一條命令或遇到“return”命令時,就結(jié)束函數(shù)文件的運行,同時函數(shù)工作空間的變量就被清除; 2022/
3、7/19MATLAB_程序設(shè)計6M函數(shù)文件的特點4、函數(shù)的工作空間隨具體的M函數(shù)文件調(diào)用而產(chǎn)生,隨調(diào)用結(jié)束而刪除,是獨立的、臨時的,在MATLAB運行過程中可以產(chǎn)生任意多個臨時的函數(shù)空間。5、文件名與函數(shù)名相同。2022/7/19MATLAB_程序設(shè)計7程序流程控制三種控制結(jié)構(gòu)順序循環(huán)分支2022/7/19MATLAB_程序設(shè)計8循環(huán)結(jié)構(gòu)1、for . end循環(huán)結(jié)構(gòu)for 循環(huán)變量=array循環(huán)體end說明:循環(huán)體執(zhí)行的次數(shù)就是array的列數(shù)。循環(huán)變量依次取array的各列,每取一次循環(huán)體執(zhí)行一次。 2022/7/19MATLAB_程序設(shè)計9循環(huán)結(jié)構(gòu)2、while . end循環(huán)結(jié)構(gòu)wh
4、ile 表達式循環(huán)體end說明:只要表達式為邏輯真,就執(zhí)行循環(huán)體;一旦表達式為假,就結(jié)束循環(huán)。2022/7/19MATLAB_程序設(shè)計10分支結(jié)構(gòu)1、ifelseend條件轉(zhuǎn)移結(jié)構(gòu)if 條件式1語句段1elseif 條件式2語句段2. else語句段n+1end2022/7/19MATLAB_程序設(shè)計112022/7/19MATLAB_程序設(shè)計12if分支結(jié)構(gòu)例子-+=)()6030()30(151050)3015(50)150(101540其他NaNxxxxxy2022/7/19MATLAB_程序設(shè)計13function y=Ex01(x)%Ex01 根據(jù)x值求yif x0 y=NaNels
5、eif x15 y=40/15*x+10elseif x30 y=50elseif x=0)&(grade=60)&(grade=70)&(grade=85)&(grade=100) rank=優(yōu)秀;else rank=成績錯誤!; endrank分支結(jié)構(gòu)2、switchcase開關(guān)結(jié)構(gòu)switch 開關(guān)表達式case 表達式1 語句段1case 表達式2 語句段2. otherwise 語句段nend2022/7/19MATLAB_程序設(shè)計15分支結(jié)構(gòu)2、switchcase開關(guān)結(jié)構(gòu)說明:(1)開關(guān)表達式只能是標(biāo)量或字符串。(2)case后面的表達式可以是標(biāo)量、字符串或元胞數(shù)組,如果是元胞數(shù)
6、組則將開關(guān)表達式與元胞數(shù)組的所有元素進行比較,只要某個元素與開關(guān)表達式相等,就執(zhí)行其后的語句段。 2022/7/19MATLAB_程序設(shè)計16switch分支結(jié)構(gòu)例子季節(jié)判斷(swtichf.m)2022/7/19MATLAB_程序設(shè)計17分支結(jié)構(gòu)3、try. catch. end試探結(jié)構(gòu)try 語句段1catch 語句段2end 2022/7/19MATLAB_程序設(shè)計18分支結(jié)構(gòu)3、try. catch. end試探結(jié)構(gòu)說明:首先試探性地執(zhí)行語句段1,如果在此段語句執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并放棄這段語句,轉(zhuǎn)而執(zhí)行語句段2中的語句,當(dāng)執(zhí)行語句段2又出現(xiàn)錯
7、誤,則終止該結(jié)構(gòu)。 2022/7/19MATLAB_程序設(shè)計19流程控制語句1. break命令break命令可以使包含break的最內(nèi)層的for或while語句強制終止,立即跳出該結(jié)構(gòu),執(zhí)行end后面的命令,break命令一般和if結(jié)構(gòu)結(jié)合使用。2. continue命令continue命令用于結(jié)束本次循環(huán),只結(jié)束本次循環(huán)而繼續(xù)進行下次循環(huán)。2022/7/19MATLAB_程序設(shè)計20流程控制語句3. return命令return命令是終止當(dāng)前命令的執(zhí)行,并且立即返回到上一級調(diào)用函數(shù)或等待鍵盤輸入命令,可以用來提前結(jié)束程序的運行。4. pause命令pause命令用來使程序運行暫停,等待用戶
8、按任意鍵繼續(xù)。2022/7/19MATLAB_程序設(shè)計21流程控制語句5. keyboard命令keyboard命令用來使程序暫停運行,等待鍵盤命令,執(zhí)行完自己的工作后,輸入return語句,程序就繼續(xù)運行。6. input命令input命令用來提示用戶應(yīng)該從鍵盤輸入數(shù)值、字符串和表達式,并接受該輸入。2022/7/19MATLAB_程序設(shè)計22局部變量和全局變量根據(jù)變量的作用域不同,可以將MATLAB程序中的變量分為局部變量和全局變量.2022/7/19MATLAB_程序設(shè)計23局部變量 局部變量(Local Variables)是在函數(shù)體內(nèi)部使用的變量,其影響范圍只能在本函數(shù)內(nèi); 因為每個
9、函數(shù)在運行時,都占用獨立的函數(shù)工作空間,與MATLAB的工作空間是相互獨立的,所以局部變量只在函數(shù)執(zhí)行期間存在。 2022/7/19MATLAB_程序設(shè)計24全局變量全局變量(Global Variables)是可以在不同的函數(shù)工作空間和MATALB工作空間中共享使用的變量。 用 global定義, 而且每個要共享全局變量的函數(shù)和工作空間,都必須逐個定義, 先定義后使用.注意:由于全局變量在任何定義過的函數(shù)中都可以修改,因此不提倡使用全局變量;使用時應(yīng)十分小心,建議把全局變量的定義放在函數(shù)體的開始,全局變量用大寫字符命名。2022/7/19MATLAB_程序設(shè)計25函數(shù)的參數(shù) 函數(shù)調(diào)用格式:
10、輸出參數(shù)1,輸出參數(shù)2,=函數(shù)名(輸入?yún)?shù)1,輸入?yún)?shù)2,)2022/7/19MATLAB_程序設(shè)計26函數(shù)參數(shù)的個數(shù)(1) nargin和nargout變量(sumf.m)nargin%在函數(shù)體內(nèi)獲取實際輸入變量的個數(shù)nargout%在函數(shù)體內(nèi)獲取實際輸出變量的個數(shù)2022/7/19MATLAB_程序設(shè)計27函數(shù)參數(shù)的個數(shù)(1) nargin和nargout變量nargin(fun)%在函數(shù)體外獲取定義的輸入?yún)?shù)個數(shù)nargout(fun)%在函數(shù)體外獲取定義的輸出參數(shù)個數(shù)2022/7/19MATLAB_程序設(shè)計28函數(shù)的參數(shù)個數(shù)(2) varargin和varargout變量 vararg
11、in和varargout可以獲得輸入輸出變量的各元素內(nèi)容。 varargin和varargout都是元胞數(shù)組。調(diào)用形式:vararginm2022/7/19MATLAB_程序設(shè)計29M文件性能優(yōu)化1. 使用循環(huán)時提高速度的措施(1) 盡量用向量的運算來代替循環(huán)操作。(2) 在必須使用多重循環(huán)的情況下,如果兩個循環(huán)執(zhí)行的次數(shù)不同,則建議在循環(huán)的外環(huán)執(zhí)行循環(huán)次數(shù)少的,內(nèi)環(huán)執(zhí)行循環(huán)次數(shù)多的,也可以顯著提高速度。2022/7/19MATLAB_程序設(shè)計30M文件性能優(yōu)化2. 大型矩陣的預(yù)先定維 3. 優(yōu)先考慮內(nèi)在函數(shù)4. 采用高效的算法 5. 盡量使用M函數(shù)文件代替M腳本文件 2022/7/19MAT
12、LAB_程序設(shè)計31泛函命令 在MATLAB中,所有以函數(shù)為輸入變量的命令,都稱為泛函命令。2022/7/19MATLAB_程序設(shè)計32泛函命令調(diào)用方式輸出變量列表=函數(shù)名(h_fun, 輸入變量列表)輸出變量列表=函數(shù)名(funname, 輸入變量列表)說明:h_fun是要被執(zhí)行的M函數(shù)文件的句柄,或者是內(nèi)聯(lián)函數(shù)和字符串;funname是M函數(shù)文件名。2022/7/19MATLAB_程序設(shè)計33利用泛函命令求極小值 1. fminbnd函數(shù):用來計算單變量非線性函數(shù)的最小值。 x,y=fminbnd(h_fun,x1,x2,options)x,y=fminbnd(funname,x1,x2,
13、options) x是fun函數(shù)在區(qū)間x1xx2上的局部最小值的發(fā)生點;y是對應(yīng)的最小值。 options是用來控制算法的參數(shù)向量,默認值為0可省略。2022/7/19MATLAB_程序設(shè)計34利用泛函命令求極小值 2. fminsearch函數(shù) :求多變量無約束非線性最小值。x=fminsearch(h_fun,x0)x=fminsearch(funname,x0)x0是最小值點的初始猜測值。 2022/7/19MATLAB_程序設(shè)計35其它泛函命令3 .fzero函數(shù):求一維函數(shù)的零點,即求f(x)=0的根。x=fzero(h_fun, x0, tol, trace)x=fzero(funname, x0, tol, trace)x0有兩個作用
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)??萍脊疚膯T聘用及綠色創(chuàng)新協(xié)議
- 二零二五年度農(nóng)村私人土地租賃與特色養(yǎng)殖合作合同
- 二零二五年度跨境電商金融服務(wù)商務(wù)協(xié)議書
- 小微企業(yè)市場開拓的營銷推廣計劃
- 電商平臺用戶行為規(guī)范及免責(zé)聲明
- 車位抵押借款合同協(xié)議
- 企業(yè)信息化改造升級合作協(xié)議
- 設(shè)備采購說明文書模板
- 提高團隊協(xié)作效率的行動計劃
- 物流運輸安全及免責(zé)承諾書
- (三級)工業(yè)機器人運用與維護理論考試復(fù)習(xí)題庫(含答案)
- 2024年廣東省公務(wù)員錄用考試《行測》真題及解析
- 高中英語必背3500單詞表(完整版)
- 房產(chǎn)中介居間服務(wù)合同模板樣本
- 海洋工程裝備保險研究
- 2024年廣東省深圳市中考英語試題含解析
- GB/T 16288-2024塑料制品的標(biāo)志
- 麻風(fēng)病防治知識課件
- 3素炒圓白菜 教案
- 透析患者營養(yǎng)不良護理
- 學(xué)生消防安全常識問卷及答案
評論
0/150
提交評論