matlab 积分内联函数,[转载]MATLAB中函数句柄、匿名函数、内联函数的简单理解

本来这段时间一直看的是MATLAB中滤波器的设计部分,在一个群友的问题中偶尔看到了函数句柄,颇为好奇,自己确实不曾用过,今日自学了点,简单谈下对函数句柄匿名函数以及内联函数的理解。

一、函数句柄

所谓函数句柄,个人认为可以将其理解成一个函数的代号,就像一个人的名字。这样在调用时可以调用函数句柄而不用调用该函数。

语法如下:

变量名= @ 函数名;

@的作用就是将一个函数的函数句柄赋值给等号左边的变量。在调用函数时就可以调用该句柄,可以实现同样的功能。

例:

首先我们写一个求均值的函数:

function y=average(x)

y=mymean(x);

function a=mymean(v)

a=sum(v)/length(v);

定义一个数组z:

z=[1,2,3,4,5,6,7];

>> average(z)

ans =

4

handle =

@average

ave =

@average

>> ave(z)

ans =

4

二、匿名函数

匿名函数是函数句柄的一种特殊用法,这里所得到的函数句柄变量不指向特定的函数(即不指向函数M文件中的函数名),而是指向一个函数表达式(具体表达式)。

语法如下:

变量名=@(输入参数列表)运算表达式;

例子:

为了说明问题,我们用简单的两个数相加,

sum =

@(x,y)x+y

>> sum(2,3)

ans =

5

三、内联函数

内联函数和普通的函数句柄,准确说跟匿名函数比较类似,可以通过一个函数表达式近而得到该函数。

语法格式如下:

1 变量名=inline(表达式);

2 变量名=inline('函数表达式', '变量名1','变量名2', ... ,'变量名n');(推荐)

例如:

1

>> a='x+y'

a =

x+y

>> f=inline(a)

f =

Inline function:

f(x,y) = x+y

>> f(2,3)

ans =

5

2

>> f=inline('x+y','x','y')

f =

Inline function:

f(x,y) = x+y

>> f(2,3)

ans =

5

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值