當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > matlab定義函數(shù)
1新建文件
首先建立M文件或直接點(diǎn)擊(File/New/Function)建立函數(shù)文件,其中函數(shù)文件的格式是:
function [輸出變量] = 函數(shù)名稱(輸入變量)
% 注釋
% 函數(shù)體
2函數(shù)語法
2.1基本語法
function y=f(x) %函數(shù)的聲明
y=x^2
就是建立了一個(gè)y=x2y=x2的函數(shù),f是函數(shù)的名稱,m文件的名稱必須是f.m.
如果返回值不止一個(gè),則可以:
function [x,y,z] = f(a,b)
x=a+b
y=a-b
z=a*b
一個(gè)M文件一般只包括一個(gè)主函數(shù),但是可以編寫多個(gè)嵌套函數(shù)或子函數(shù).
2.2匿名函數(shù)
fhandle = @(arglist) expr
(1) expr 是一個(gè)簡單的matlab 變量表達(dá)式,實(shí)現(xiàn)函數(shù)的功能,例如sin(x)等
(2)arglist 是參數(shù)列表,它制定函數(shù)的輸入?yún)?shù)列表,對(duì)于多個(gè)輸入?yún)?shù)的情況通常要用逗號(hào)分隔各個(gè)參數(shù)。
(3)符號(hào)@是Matlab中穿件函數(shù)句柄的操作符,表示對(duì)由輸入?yún)?shù)列表arglist和表達(dá)式expr所確定的函數(shù)創(chuàng)建句柄,并把這個(gè)句柄返回給變量fhandle, 這樣可以通過fhandle來調(diào)用這個(gè)定義好的函數(shù).
例如:
>> myfunhd = @(x) (x+x.^2)
myfunhd =
@(x)(x+x.^2)
>> myfunhd(1)
ans =
2
匿名函數(shù)可以留空,可以嵌套。
匿名函數(shù)保存在.mat文件中,
save myfunction.mat myfunhd
將myfunhd函數(shù)保存在myfunction.mat文件中
使用load myfunction.mat myfunhd
就可以使用。
3示例
如下所示,是編寫的一個(gè)求1到n之和的求和函數(shù) eg_sum,按照上述格式,編寫代碼如下并保存文件,注意文件命名時(shí)不能以數(shù)字開頭:
function [s] = eg_sum( n )
% calculate the sum of 1..n
s = 0;
for i = 1:n
s = s + i;
end