matlab編程2之函數(shù)的編寫

matlab編程2之函數(shù)的編寫

ID:39971722

大小:340.31 KB

頁數(shù):17頁

時間:2019-07-16

matlab編程2之函數(shù)的編寫_第1頁
matlab編程2之函數(shù)的編寫_第2頁
matlab編程2之函數(shù)的編寫_第3頁
matlab編程2之函數(shù)的編寫_第4頁
matlab編程2之函數(shù)的編寫_第5頁
資源描述:

《matlab編程2之函數(shù)的編寫》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。

1、數(shù)學實驗第四講Matlab編程(二)——函數(shù)文件1用Matlab語言編寫的程序稱為M文件M文件根據(jù)調用方式的不同可以分為兩類:Script:腳本文件/命令文件Function:函數(shù)文件M文件以.m為擴展名Matlab編程直接輸入文件名即可運行供其它M文件調用,通常帶輸入?yún)?shù)和輸出參數(shù)2Matlab編程復習關系運算邏輯運算<、<=、>、>=、==、~=&、

2、、~、xor(x,y)、any(x)、all(x)輸入輸出input、disp、fprintf控制語句if、switch、for、whilepause、bre

3、ak、continue、return3function輸出形參列表=函數(shù)名(輸入形參列表)%注釋說明部分(可選)函數(shù)體語句(必須)第一行為引導行,表示該M文件是函數(shù)文件函數(shù)名的命名規(guī)則與變量名相同(必須以字母開頭)當輸出形參多于一個時,用方括號括起來以百分號開始的語句為注釋語句函數(shù)文件函數(shù)文件由function語句引導函數(shù)文件名必須與函數(shù)名一致函數(shù)必須是一個單獨的M文件4functiony=myfliplr(x)%returnsXwithrowpreservedandcolumns%flippedinthele

4、ft/rightdirection%y=x(:,end:-1:1);函數(shù)文件舉例例:myfliplr.mfunction[a,b]=myswap(x,y)%swapxandya=y;b=x;例:myswap.m5functionprintyh(n)%打印楊輝三角形,本函數(shù)沒有輸出參數(shù)yh=1;disp(yh);ifn==1,return;endyh=[1,1];disp(yh);fork=3:nyh_old=yh;k2=ceil(k/2);forl=2:k2yh(l)=yh_old(l-1)+yh_old(l)

5、;endyh(k2+1:k)=yh(k-k2:-1:1);disp(yh);end函數(shù)文件舉例例:printyh.m6函數(shù)調用的一般格式輸出實參列表=函數(shù)名(輸入實參列表)函數(shù)調用時,實參的順序應與函數(shù)定義時形參的順序一致實參與形參之間的結合是通過值傳遞實現(xiàn)的函數(shù)可以嵌套調用,即一個函數(shù)可以被其它函數(shù)調用, 甚至可以被它自身調用,此時稱為遞歸調用函數(shù)所傳遞的參數(shù)具有可調性,Matlab用兩個永久變量nargin和nargout分別記錄調用該函數(shù)時的輸入實參 和輸出實參的個數(shù)函數(shù)調用7%函數(shù)文件myfactor.

6、mfunctiony=myfactor(n)if(n<=1)y=1;elsey=n*myfactor(n-1);end例:利用函數(shù)的遞歸調用計算n!遞歸函數(shù)舉例8%main.m%clear;s=0;n=10;fori=1:ns=s+myfactor(i);endfprintf('s=%g',s)例:計算1!+2!+…+10!遞歸函數(shù)舉例9%ex4nargin.mfunctiony=ex4nargin(a,b)if(nargin==1)y=a;elseif(nargin==2)y=a*b;end參數(shù)的可調性舉

7、例例:nargin和nargout的使用10參數(shù)的可調性舉例%ex4nargout.mfunction[p,q]=ex4nargout(a,b)if(nargout==1)p=a+b;elseif(nargout==2)p=a+b;q=a-b;end11函數(shù)通過輸入和輸出參數(shù)與其它M文件進行數(shù)據(jù)傳遞當函數(shù)調用完畢后,該函數(shù)文件中定義的所有局部變量都將被釋放,即全部被清除如果在若干個M文件中,都把某個變量定義為全局變量,則這些函數(shù)將公共使用這一變量。所有函數(shù)都可以對它進行存取和修改操作函數(shù)文件中的變量都是局部的,

8、即一個函數(shù)文件中定義的變量不能被另一個函數(shù)文件或其它M文件使用全局變量與局部變量定義全局變量是M文件間傳遞信息的一種手段12變量名列表中的各個變量用空格隔開,不能用逗號!在使用全局變量的所有M文件中,都要對其所使用的全局變量進行定義全局變量給函數(shù)間的數(shù)據(jù)傳遞帶來了方便,但卻破壞了函數(shù)對變量的封裝,降低了程序的可讀性,因而在結構化程序設計中,全局變量是不受歡迎的。特別是當程序較大,子程序較多時,全局變量將給程序調試和維護帶來不便,故不提倡使用全局變量。global變量名列表全局變量的定義13程序示例%ex4glo

9、bal.mclear;globalaba=1;b=3;y=mysquaresum(a,b);fprintf('a=%g,b=%g',a,b);z=myproduct(a,b);fprintf('a=%g,b=%g',a,b);%mysquaresum.mfunctionsquare_sum=mysquaresum(x,y)square_sum=x^2+y^2;a=x+y;%my

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

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

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