matlab匿名函数 函数句柄,matlab匿名函数函数句柄.docx

41528d3028836879cd698677c3999917.gifmatlab匿名函数函数句柄.docx

matlab匿名函数函数句柄(2012-05-1111:35:05)转载▼标签:教育分类:study与matlab一、函数句柄所谓函数句柄,个人认为可以将其理解成一个函数的代号,就像一个人的名字。这样在调用时可以调用函数句柄而不用调用该函数。语法如下:变量名=@函数名;@的作用就是将一个函数的函数句柄赋值给等号左边的变量。在调用函数时就可以调用该句柄,可以实现同样的功能。例:首先我们写一个求均值的函数:functiony=average(x)y=mymean(x);functiona=mymean(v)a=sum(v)/length(v);定义一个数组z:z=[1,2,3,4,5,6,7];>>average(z)ans=4>>handle=@averagehandle=@average>>ave=@averageave=@average>>ave(z)ans=4二、匿名函数相当于C语言中的函数指针(入口地址),只不过句柄就用一个唯一的常整数来指出匿名函数是函数句柄的一种特殊用法,这里所得到的函数句柄变量不指向特定的函数(即不指向函数M文件中的函数名),而是指向一个函数表达式(具体表达式)。语法如下:变量名=@(输入参数列表)运算表达式;例子:为了说明问题,我们用简单的两个数相加,>>sum=@(x,y)x+ysum=@(x,y)x+y>>sum(2,3)ans=5%%%%%%%%%%%%%%%%%%%比如定义f(x)=x^2,可以写为f=@(x)(x.^2)其中@(x)(x.^2)就是匿名函数,第一个括号里面是自变量,第二个括号里面是表达式,@是函数指针f=@(x)(x.^2)表示将匿名函数@(x)(x.^2)赋值给f,于是f就表示该函数。于是f(2)=2.^2=4;f(1:3)=[1:3].^2=[149]等等定义匿名函数时也可以调用别的匿名函数,比如f1=@(x,y)(x.^2+y.^2)定义了函数x^2+y^2f2=@(t)(f1(t,2))定义了函数t^2+4f3=@(x)(f1(x(1),x(2)))定义了函数x(1)^2+x(2)^2使用匿名函数时一定要注意函数本身的参数形式,如f1(2,3)表示2^2+3^2f2(3)=3表示3^2+4f3([1,2])表示1^2+2^2%%%%%%%%%%%%%%%%%%%%%%%%%%%%%三、内联函数内联函数和普通的函数句柄,准确说跟匿名函数比较类似,可以通过一个函数表达式近而得到该函数。语法格式如下:1变量名=inline(表达式);2变量名=inline( 函数表达式 , 变量名1 , 变量名2 ,., 变量名n );(推荐)例如:1>>a= x+y a=x+y>>f=inline(a)f=Inlinefunction:f(x,y)=x+y>>f(2,3)ans=52>>f=inline( x+y , x , y )f=Inlinefunction:f(x,y)=x+y>>f(2,3)ans=5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%创建句柄函数str2func函数才支持生成匿名函数句柄1.>>symsx2.f=diff(sin(x)*exp(sqrt(x)),2)3.g=str2func([ @(x) vectorize(char(f))])4.f1=quad(g,1,2) humps type: simple file: C:\ProgramFiles\MATLAB\R2009a\toolbox\matlab\demos\humps.m >>functions(c_builtin)ans=function: cos type: simple file: >>functions(b_humps)an

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值