資源描述:
《matlab函數(shù)文件課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、數(shù)學實驗第六講函數(shù)文件本講主要內(nèi)容:什么是函數(shù)文件如何編寫函數(shù)文件函數(shù)參數(shù)的可調(diào)性遞歸函數(shù)全局與局部變量子函數(shù)自定義函數(shù)的三種途徑M文件根據(jù)調(diào)用方式的不同可以分為兩類:Script:腳本文件/命令文件獨立的m文件--直接輸入文件名即可運行Function:函數(shù)文件可調(diào)用m文件--它由function引導,可供其它M文件調(diào)用,通常帶輸入?yún)?shù)和輸出參數(shù)Matlab編程表3-1腳本文件與函數(shù)文件的區(qū)別腳本文件函數(shù)文件輸入、輸出沒有輸入?yún)?shù),不返回輸出參數(shù)可以帶輸入?yún)?shù)也可返回輸出參數(shù)變量操作只操作基本工作空間變量(全局變量)可操作基本工作空間變量
2、(全局變量需用global指定)和局部變量調(diào)用方式直接運行必須以函數(shù)調(diào)用方式第一行為引導行,表示該M文件是函數(shù)文件函數(shù)名的命名規(guī)則與變量名相同(必須以字母開頭)當輸出形參多于一個時,用方括號括起來以百分號開始的語句為注釋語句函數(shù)文件函數(shù)文件由function語句引導函數(shù)文件名必須與函數(shù)名一致函數(shù)必須是一個單獨的M文件function輸出形參列表=函數(shù)名(輸入形參列表)%注釋說明部分:%可以被help命令顯示程序語句段%函數(shù)體部分函數(shù)文件(ftoc.m):例:將華氏溫度轉(zhuǎn)化為攝氏溫度:編程示例clear;f=input('Pleaseinpu
3、tf:');c=5*(f-32)/9;fprintf('c=%g',c);腳本文件(ftoc.m):functionc=ftoc(f)%將華氏溫度f轉(zhuǎn)化為攝氏溫度cc=5*(f-32)/9;fprintf('c=%g',c);函數(shù)文件舉例function[s,l]=mycircle(r)%函數(shù)功能:求半徑為r的圓的面積和周長%輸入?yún)?shù):圓的半徑r%輸出參數(shù):圓的面積s和周長ls=pi*r^2;l=2*pi*r;例:編寫函數(shù)文件求半徑為r的圓的面積和周長函數(shù)定義好了以后,就可以像系統(tǒng)函數(shù)一樣,隨意調(diào)用。試一試:a=mycircle(1
4、0)[ab]=mycircle(5)y=f2cf(0);函數(shù)文件舉例functiony=func(x)%函數(shù)功能:求分段函數(shù)ifabs(x)<1y=sqrt(1-x^2);elsey=x^2-1;end例:編寫函數(shù)文件求下面的分段函數(shù)函數(shù)定義好了以后,就可以像系統(tǒng)函數(shù)一樣,隨意調(diào)用。試一試:a=func(10)func(0.5)ezplot('func(x)',[-2,2]),holdonfplot('func(x)+0.5',[-2,2],'--r'),holdoff函數(shù)調(diào)用的一般格式輸出實參列表=函數(shù)名(輸入實參列表)函數(shù)調(diào)用時,實參的
5、順序應與函數(shù)定義時形參的順序一致實參與形參之間的結合是通過值傳遞實現(xiàn)的函數(shù)可以嵌套調(diào)用,即一個函數(shù)可以被其它函數(shù)調(diào)用,甚至可以被它自身調(diào)用,此時稱為遞歸調(diào)用函數(shù)所傳遞的參數(shù)具有可調(diào)性,Matlab用兩個永久變量nargin和nargout分別記錄調(diào)用該函數(shù)時的輸入實參和輸出實參的個數(shù)函數(shù)調(diào)用%narginEx.mfunctiony=narginEx(a,b)if(nargin==1)y=a;elseif(nargin==2)y=a*b;end參數(shù)的可調(diào)性舉例重要系統(tǒng)變量nargin:存儲調(diào)用函數(shù)時輸入實參的個數(shù)。例:nargin的使用:
6、若調(diào)用格式如下,運行結果分別是什么?narginEx(4,5)narginEx(3)narginEx(1,2,3)解:函數(shù)文件內(nèi)容為functionc=calnar(a,b)%當輸入1個參數(shù)求其絕對值%輸入2個參數(shù)求其平方和的算術平方根if(nargin==1)c=abs(a);elseif(nargin==2)c=sqrt(a.^2+b.^2);end例:定義一個函數(shù),當輸入1個參數(shù)求其絕對值,輸入2個參數(shù)求其平方和的算術平方根。例:畫以r為半徑的圓,返回圓面積,可以指定線色等屬性。functionsa=circle(r,s)%CIRCL
7、Eplotacircleofradiirinthelinespecifiedbys.%r指定半徑的數(shù)值%s指定線色的字符串%sa圓面積%circle(r)利用藍實線畫半徑為r的圓周線.%circle(r,s)利用串s指定的線色畫半徑為r的圓周線.%sa=circle(r)計算圓面積,并畫半徑為r的藍色圓面.%sa=circle(r,s)計算圓面積,并畫半徑為r的s色圓面.ifnargin>2error('輸入?yún)?shù)太多。');end;ifnargin==1s='b';end;t=0:0.01:2*pi;plot(r*cos(t),r*sin(
8、t),s);axisequal;sa=pi*r^2;參數(shù)的可調(diào)性舉例重要系統(tǒng)變量nargout:存儲調(diào)用函數(shù)時輸出實參的個數(shù)。例:nargout的使用:%nargoutEx.mf