




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MATLAB程序設計專題M文件有兩種形式M腳本文件M函數(shù)文件8/14/20231MATLAB_程序設計MATLAB程序設計專題M文件有兩種形式8/1/20231MM腳本文件的特點1、腳本文件中的命令格式和前后位置與在命令窗口中輸入相同。2、運行腳本文件時,只是按順序從文件中讀取一條條命令,送到MATLAB命令窗口中去執(zhí)行。8/14/20232MATLAB_程序設計M腳本文件的特點1、腳本文件中的命令格式和前后位置與在命令窗M腳本文件的特點3、與在命令窗口中直接運行命令一樣,腳本文件運行產生的變量都是駐留在MATLAB的工作空間(workspace)中,可以很方便地查看變量;腳本文件的命令也可以訪問工作空間的所有數(shù)據(jù),因此要注意避免變量的覆蓋而造成程序出錯。8/14/20233MATLAB_程序設計M腳本文件的特點3、與在命令窗口中直接運行命令一樣,腳本文件M函數(shù)文件的基本格式
函數(shù)聲明行function[輸出變量列表]=函數(shù)名(輸入變量列表)H1行(用%開頭的注釋行) 在線幫助文本(用%開頭) 編寫和修改記錄(用%開頭)
函數(shù)體8/14/20234MATLAB_程序設計M函數(shù)文件的基本格式 函數(shù)聲明行function[輸出變量創(chuàng)建M函數(shù)文件并調用的步驟編寫函數(shù)代碼將函數(shù)文件保存為“函數(shù)名.m”。在命令窗口輸入命令調用程序8/14/20235MATLAB_程序設計創(chuàng)建M函數(shù)文件并調用的步驟編寫函數(shù)代碼8/1/20235MAM函數(shù)文件的特點1、第一行總是以“function”引導的函數(shù)聲明行;2、函數(shù)文件在運行過程中產生的變量都存放在函數(shù)本身的工作空間;3、當文件執(zhí)行完最后一條命令或遇到“return”命令時,就結束函數(shù)文件的運行,同時函數(shù)工作空間的變量就被清除;
8/14/20236MATLAB_程序設計M函數(shù)文件的特點1、第一行總是以“function”引導的函M函數(shù)文件的特點4、函數(shù)的工作空間隨具體的M函數(shù)文件調用而產生,隨調用結束而刪除,是獨立的、臨時的,在MATLAB運行過程中可以產生任意多個臨時的函數(shù)空間。5、文件名與函數(shù)名相同。8/14/20237MATLAB_程序設計M函數(shù)文件的特點4、函數(shù)的工作空間隨具體的M函數(shù)文件調用而產程序流程控制三種控制結構順序循環(huán)分支8/14/20238MATLAB_程序設計程序流程控制三種控制結構8/1/20238MATLAB_程序循環(huán)結構1、for...end循環(huán)結構for循環(huán)變量=array 循環(huán)體end說明:循環(huán)體執(zhí)行的次數(shù)就是array的列數(shù)。循環(huán)變量依次取array的各列,每取一次循環(huán)體執(zhí)行一次。8/14/20239MATLAB_程序設計循環(huán)結構1、for...end循環(huán)結構8/1/20239循環(huán)結構2、while...end循環(huán)結構while表達式 循環(huán)體end說明:只要表達式為邏輯真,就執(zhí)行循環(huán)體;一旦表達式為假,就結束循環(huán)。8/14/202310MATLAB_程序設計循環(huán)結構2、while...end循環(huán)結構8/1/202分支結構1、if…else…end條件轉移結構if條件式1
語句段1elseif條件式2
語句段2 ...else
語句段n+1
end8/14/202311MATLAB_程序設計分支結構1、if…else…end條件轉移結構8/1/202if分支結構例子???????í죣--<£<£+=)()6030()30(151050)3015(50)150(101540其他NaNxxxxxy8/14/202312MATLAB_程序設計if分支結構例子???????í죣--<£<£+=)()functiony=Ex01(x)%Ex01根據(jù)x值求yifx<0y=NaNelseifx<15y=40/15*x+10elseifx<30y=50elseifx<=60y=50-10/15*(x-30)elsey=NaNend8/14/202313MATLAB_程序設計functiony=Ex01(x)8/1/202313MA學生成績判定(ifelsef.m)functionifelsef()%ifelsef使用if結構的成績評定grade=input('inputthegrade:')if(grade>=0)&(grade<60)rank='不及格';elseif(grade>=60)&(grade<70)rank='及格';elseif(grade>=70)&(grade<85)rank='良好';elseif(grade>=85)&(grade<=100)rank='優(yōu)秀';elserank='成績錯誤!';endrank8/14/202314MATLAB_程序設計學生成績判定(ifelsef.m)functionifel分支結構2、switch…case開關結構switch開關表達式 case表達式1
語句段1
case表達式2
語句段2 ... otherwise
語句段n
end8/14/202315MATLAB_程序設計分支結構2、switch…case開關結構8/1/20231分支結構2、switch…case開關結構說明:(1)開關表達式只能是標量或字符串。(2)case后面的表達式可以是標量、字符串或元胞數(shù)組,如果是元胞數(shù)組則將開關表達式與元胞數(shù)組的所有元素進行比較,只要某個元素與開關表達式相等,就執(zhí)行其后的語句段。8/14/202316MATLAB_程序設計分支結構2、switch…case開關結構說明:8/1/20switch分支結構例子季節(jié)判斷(swtichf.m)8/14/202317MATLAB_程序設計switch分支結構例子8/1/202317MATLAB_程分支結構3、try...catch...end試探結構try
語句段1catch
語句段2end8/14/202318MATLAB_程序設計分支結構3、try...catch...end試探結構8分支結構3、try...catch...end試探結構說明:首先試探性地執(zhí)行語句段1,如果在此段語句執(zhí)行過程中出現(xiàn)錯誤,則將錯誤信息賦給保留的lasterr變量,并放棄這段語句,轉而執(zhí)行語句段2中的語句,當執(zhí)行語句段2又出現(xiàn)錯誤,則終止該結構。8/14/202319MATLAB_程序設計分支結構3、try...catch...end試探結構8流程控制語句1.break命令 break命令可以使包含break的最內層的for或while語句強制終止,立即跳出該結構,執(zhí)行end后面的命令,break命令一般和if結構結合使用。2.continue命令
continue命令用于結束本次循環(huán),只結束本次循環(huán)而繼續(xù)進行下次循環(huán)。8/14/202320MATLAB_程序設計流程控制語句1.break命令8/1/202320MATL流程控制語句3.return命令 return命令是終止當前命令的執(zhí)行,并且立即返回到上一級調用函數(shù)或等待鍵盤輸入命令,可以用來提前結束程序的運行。4.pause命令 pause命令用來使程序運行暫停,等待用戶按任意鍵繼續(xù)。8/14/202321MATLAB_程序設計流程控制語句3.return命令8/1/202321MAT流程控制語句5.keyboard命令 keyboard命令用來使程序暫停運行,等待鍵盤命令,執(zhí)行完自己的工作后,輸入return語句,程序就繼續(xù)運行。6.input命令 input命令用來提示用戶應該從鍵盤輸入數(shù)值、字符串和表達式,并接受該輸入。8/14/202322MATLAB_程序設計流程控制語句5.keyboard命令8/1/202322M局部變量和全局變量根據(jù)變量的作用域不同,可以將MATLAB程序中的變量分為局部變量和全局變量.8/14/202323MATLAB_程序設計局部變量和全局變量根據(jù)變量的作用域不同,可以將MATLAB程局部變量
局部變量(LocalVariables)是在函數(shù)體內部使用的變量,其影響范圍只能在本函數(shù)內;因為每個函數(shù)在運行時,都占用獨立的函數(shù)工作空間,與MATLAB的工作空間是相互獨立的,所以局部變量只在函數(shù)執(zhí)行期間存在。
8/14/202324MATLAB_程序設計局部變量局部變量(LocalVar全局變量
全局變量(GlobalVariables)是可以在不同的函數(shù)工作空間和MATALB工作空間中共享使用的變量。用global定義,而且每個要共享全局變量的函數(shù)和工作空間,都必須逐個定義,先定義后使用.
注意:由于全局變量在任何定義過的函數(shù)中都可以修改,因此不提倡使用全局變量;使用時應十分小心,建議把全局變量的定義放在函數(shù)體的開始,全局變量用大寫字符命名。8/14/202325MATLAB_程序設計全局變量 全局變量(GlobalVariables)是可函數(shù)的參數(shù)函數(shù)調用格式:
[輸出參數(shù)1,輸出參數(shù)2,…]=函數(shù)名(輸入參數(shù)1,輸入參數(shù)2,…)8/14/202326MATLAB_程序設計函數(shù)的參數(shù)函數(shù)調用格式:8/1/202326MATL函數(shù)參數(shù)的個數(shù)(1)nargin和nargout變量(sumf.m)nargin %在函數(shù)體內獲取實際輸入變量的個數(shù)nargout%在函數(shù)體內獲取實際輸出變量的個數(shù)8/14/202327MATLAB_程序設計函數(shù)參數(shù)的個數(shù)(1)nargin和nargout變量(su函數(shù)參數(shù)的個數(shù)(1)nargin和nargout變量nargin(’fun’)%在函數(shù)體外獲取定義的輸入參數(shù)個數(shù)nargout(’fun’)%在函數(shù)體外獲取定義的輸出參數(shù)個數(shù)8/14/202328MATLAB_程序設計函數(shù)參數(shù)的個數(shù)(1)nargin和nargout變量8/1函數(shù)的參數(shù)個數(shù)(2)varargin和varargout變量 varargin和varargout可以獲得輸入輸出變量的各元素內容。varargin和varargout都是元胞數(shù)組。 調用形式:varargin{m}8/14/202329MATLAB_程序設計函數(shù)的參數(shù)個數(shù)(2)varargin和varargout變M文件性能優(yōu)化1.使用循環(huán)時提高速度的措施(1)盡量用向量的運算來代替循環(huán)操作。(2)在必須使用多重循環(huán)的情況下,如果兩個循環(huán)執(zhí)行的次數(shù)不同,則建議在循環(huán)的外環(huán)執(zhí)行循環(huán)次數(shù)少的,內環(huán)執(zhí)行循環(huán)次數(shù)多的,也可以顯著提高速度。8/14/202330MATLAB_程序設計M文件性能優(yōu)化1.使用循環(huán)時提高速度的措施8/1/2023M文件性能優(yōu)化2.大型矩陣的預先定維3.優(yōu)先考慮內在函數(shù)4.采用高效的算法5.盡量使用M函數(shù)文件代替M腳本文件8/14/202331MATLAB_程序設計M文件性能優(yōu)化2.大型矩陣的預先定維8/1/202331泛函命令
在MATLAB中,所有以函數(shù)為輸入變量的命令,都稱為泛函命令。8/14/202332MATLAB_程序設計泛函命令 在MATLAB中,所有以函數(shù)為輸入變量的命令,泛函命令調用方式[輸出變量列表]=函數(shù)名(h_fun,輸入變量列表)[輸出變量列表]=函數(shù)名(‘funname’,輸入變量列表) 說明:h_fun是要被執(zhí)行的M函數(shù)文件的句柄,或者是內聯(lián)函數(shù)和字符串;‘funname’是M函數(shù)文件名。8/14/202333MATLAB_程序設計泛函命令調用方式[輸出變量列表]=函數(shù)名(h_fun,輸入利用泛函命令求極小值1.fminbnd函數(shù):用來計算單變量非線性函數(shù)的最小值。[x,y]=fminbnd(h_fun,x1,x2,options)[x,y]=fminbnd(‘funname’,x1,x2,options) x是fun函數(shù)在區(qū)間x1<x<x2上的局部最小值的發(fā)生點;y是對應的最小值。options是用來控制算法的參數(shù)向量,默認值為0可省略。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼杉木林地買賣合同
- 對講機購銷合同
- 手房中介購房合同
- 網絡工程合同協(xié)議
- 鍋爐采購合同
- 交通行業(yè)智能交通管控方案
- 鋼筋購買銷售合同
- 衛(wèi)星通信系統(tǒng)建設工程承包合同
- 勞動合同和人力資源公司簽訂
- 光伏安裝勞務分包合同
- 《社區(qū)康復》課件-第八章 視力障礙患者的社區(qū)康復實踐
- 透析患者的血糖管理
- 漢堡王行業(yè)分析
- 人教版數(shù)學三年級下冊全冊雙減同步分層作業(yè)設計 (含答案)
- 肝硬化“一病一品”
- 2024大型活動標準化執(zhí)行手冊
- 大學美育十六講六七講
- 瀝青拌合站講義課件
- 《快遞實務》 教案 項目三 快遞收件業(yè)務操作、項目七 快遞保價與賠償業(yè)務
- 《逆向建模與產品創(chuàng)新設計》課程標準
- AI時代的藝術創(chuàng)作與表達
評論
0/150
提交評論