matlab中的自定義函數(shù)與調(diào)用

matlab中的自定義函數(shù)與調(diào)用

ID:13270077

大?。?0.90 KB

頁數(shù):5頁

時間:2018-07-21

matlab中的自定義函數(shù)與調(diào)用_第1頁
matlab中的自定義函數(shù)與調(diào)用_第2頁
matlab中的自定義函數(shù)與調(diào)用_第3頁
matlab中的自定義函數(shù)與調(diào)用_第4頁
matlab中的自定義函數(shù)與調(diào)用_第5頁
資源描述:

《matlab中的自定義函數(shù)與調(diào)用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、Matlab自定義函數(shù)?1、函數(shù)文件+調(diào)用命令文件:需單獨定義一個自定義函數(shù)的M文件;?2、函數(shù)文件+子函數(shù):定義一個具有多個自定義函數(shù)的M文件;?3、Inline:無需M文件,直接定義;?4、Syms+subs:?無需M文件,直接定義;?5、字符串+subs:無需M文件,直接定義.6、匿名函數(shù)7、直接通過@符號定義.1、函數(shù)文件+調(diào)用函數(shù)文件:定義多個M文件:%?調(diào)用函數(shù)文件:myfile.mclearclcfort=1:10y=mylfg(t);%調(diào)用函數(shù)時要注意實參與形參的匹配!fprintf(‘%4d^(1/3)=%6.4f’,t,y);end%

2、自定義函數(shù)文件:mylfg.mfunctiony=mylfg(x)?%注意:函數(shù)名(mylfg)必須與文件名(mylfg.m)一致Y=x^(1/3);注:這種方法要求自定義函數(shù)必須單獨寫一個M文件,不能與調(diào)用的命令文件寫在同一個M文件中。2、函數(shù)文件+子函數(shù):定義一個具有多個子函數(shù)的M文件%函數(shù)文件:funtry2.mfunction[]=funtry2()%可以無自變量()或無因變量[]fort=1:10y=lfg2(t);fprintf('%4d^(1/3)=%6.4f',t,y);endfunctiony=lfg2(x)%%子函數(shù)y=x^(1/3)

3、;%注:自定義函數(shù)文件funtry2.m中可以定義多個子函數(shù)function。子函數(shù)lfg2只能被主函數(shù)和主函數(shù)中的其他子函數(shù)調(diào)用。3、Inline:無需M文件,直接定義;%inline命令用來定義一個內(nèi)聯(lián)函數(shù):f=inline(‘函數(shù)表達式’,‘變量1’,’變量2’,……)。調(diào)用方式:y=f(數(shù)值列表)?%注意:代入的數(shù)值列表順序應(yīng)與inline()定義的變量名順序一致。例如:f=inline(‘x^2+y’,’x’,’y’);z=f(2,3)Ans=7注:這種函數(shù)定義方式是將它作為一個內(nèi)部函數(shù)調(diào)用。特點是,它是基于Matlab的數(shù)值運算內(nèi)核的,所以它的運

4、算速度較快,程序效率更高。缺點是,該方法只能對數(shù)值進行代入,不支持符號代入,且對定義后的函數(shù)不能進行求導(dǎo)等符號運算。內(nèi)聯(lián)函數(shù)定義方式是將f作為一個內(nèi)部函數(shù)調(diào)用。其特點是:調(diào)用方式最接近于我們平時對函數(shù)的定義,使程序更具可讀性。同時由于它是基于Matlab的數(shù)值計算內(nèi)核的,所以它的運算速度較快,程序更有效率。這種定義方式的缺點:定義一個內(nèi)聯(lián)函數(shù)用去的內(nèi)存空間比相同條件下其他的方法要大得多。該方法只能對數(shù)值進行代入,不支持符號代入,并且對于定義后的函數(shù)不能進行求導(dǎo)等符號運算。例:通過命令clear清除工作空間的所有變量后,執(zhí)行如下指令ClearClcf=’x^2

5、’;Symsxg;g=x^2;h=inline(‘x^2’,’x’);whos4、Syms+subs:?無需M文件,直接定義;用syms定義一個符號表達式,用subs調(diào)用:Symsfx?%定義符號f=1/(1+x^2);?%定義符號表達式也是符號subs(f,‘x’,?代替x的數(shù)值或符號)注:對于在syms中已經(jīng)定義過的符號變量,在subs中進行替代時,單引號可以省略。但是,如果在syms后又被重新定義為其他類型,則必須加單引號,否則不可替換。這種函數(shù)定義方法的特點是,可以用符號進行替換Symsfxf=1/(1+x^2);subs(f,‘x’,’y^2’)a

6、ns=1/(1+(y^2)^2)注:該方法的缺點是,由于使用符號運算內(nèi)核,運算速度會大大降低。5、字符串+subs:無需M文件,直接定義.直接定義一個字符串,用subs命令調(diào)用。例如:f=’1/(1+x^2)’?%定義字符串z=subs(f,’x’,2)g=subs(f,’x’,’y^2’)注:此處x的單引號不可省略。本函數(shù)方式可以代入字符,但字符不能參與運算,否則將自行轉(zhuǎn)化成該字符的ASCII碼運算,這與我們想要的結(jié)果可能會大相徑庭。優(yōu)點是,占用內(nèi)存最少,定義格式方面自由。缺點是,無法對字符進行符號轉(zhuǎn)化。subs命令的一種比較方便的調(diào)用方法當所要替代的符號

7、在調(diào)用前都已經(jīng)有了數(shù)值定義,則可以直接調(diào)用:subs(f).例如:f=’x^2*y’;x=2;y=3;subs(f)ans=126.?匿名函數(shù)使用matlab函數(shù)句柄操作符@,可以定義指向matlab內(nèi)置函數(shù)和用戶自定義函數(shù)的函數(shù)句柄,函數(shù)句柄也可以像函數(shù)一樣的使用。例如:>>x=-pi:0.1:pi;>>fh={@cos,@sin};fh=????@cos????@sin>>plot(fh{2}(x))7、直接通過@符號定義.示例如下:?>>f=@(x,y)(x.^2-sin(y))f=????@(x,y)(x.^2-sin(y))>>f(2,3)ans=

8、???????3.8589函數(shù)計算的幾種方式n函數(shù)名

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。