matlab定義(yi)函數
時間:2018-12-13 來(lai)源:華清遠(yuan)見(jian)
1新建文件
首先建立M文(wen)件(jian)或直(zhi)接(jie)點擊(File/New/Function)建立函(han)數(shu)文(wen)件(jian),其中(zhong)函(han)數(shu)文(wen)件(jian)的格(ge)式是:
function [輸出(chu)變(bian)量(liang)(liang)] = 函數名稱(輸入變(bian)量(liang)(liang))
% 注釋
% 函數體
2函數語法
2.1基本語(yu)法
function y=f(x) %函(han)數的聲明(ming)
y=x^2
就是建立了一(yi)個y=x2y=x2的函數,f是函數的名(ming)稱(cheng),m文件(jian)的名(ming)稱(cheng)必須是f.m.
如果返回值不止一(yi)個(ge),則可以:
function [x,y,z] = f(a,b)
x=a+b
y=a-b
z=a*b
一(yi)個(ge)(ge)M文件一(yi)般只包括一(yi)個(ge)(ge)主函(han)(han)數,但是可以編寫多(duo)個(ge)(ge)嵌套(tao)函(han)(han)數或(huo)子函(han)(han)數.
2.2匿名函數
fhandle = @(arglist) expr
(1) expr 是(shi)一個簡單的matlab 變(bian)量表達式,實現函數(shu)的功能,例如sin(x)等
(2)arglist 是參數列(lie)表,它制定函數的輸入(ru)參數列(lie)表,對于多(duo)個輸入(ru)參數的情況通(tong)常(chang)要(yao)用(yong)逗(dou)號分隔各個參數。
(3)符號@是Matlab中穿件函數(shu)(shu)句(ju)柄的(de)操作符,表示對由輸入參數(shu)(shu)列表arglist和表達式(shi)expr所確定(ding)的(de)函數(shu)(shu)創建句(ju)柄,并把這(zhe)(zhe)個(ge)句(ju)柄返回給變量fhandle, 這(zhe)(zhe)樣可以通過fhandle來調用(yong)這(zhe)(zhe)個(ge)定(ding)義(yi)好的(de)函數(shu)(shu).
例如:
>> myfunhd = @(x) (x+x.^2)
myfunhd =
@(x)(x+x.^2)
>> myfunhd(1)
ans =
2
匿名函(han)數可以(yi)留空,可以(yi)嵌套(tao)。
匿(ni)名(ming)函數(shu)保(bao)存在.mat文件中,
save myfunction.mat myfunhd
將(jiang)myfunhd函數保存(cun)在myfunction.mat文件中
使用load myfunction.mat myfunhd
就可(ke)以(yi)使用。
3示例
如(ru)(ru)下(xia)所示,是編寫的一(yi)個求1到n之和的求和函數 eg_sum,按(an)照(zhao)上述格式,編寫代碼如(ru)(ru)下(xia)并保存(cun)文件(jian),注(zhu)意(yi)文件(jian)命(ming)名時不能以數字開頭(tou):
function [s] = eg_sum( n )
% calculate the sum of 1..n
s = 0;
for i = 1:n
s = s + i;
end

