function函数嵌套 matlab_Matlab函数进阶:使用匿名函数和内嵌函数处理多变量传递问题...

Matlab

函数进阶:

使用匿名函数

(Anonymous Function)

和内嵌函数

(Nested Function)

处理多变量传递问题

(Matlab 7.0

以上

)

问题:

有一个多变量函数

f

(

a

b

c

x

)

,

现需要分别在

a

=

a

0

b

=

b

0

c

=

c

0

a

=

a

1

b

=

b

1

c

=

c

1

的条件下对

f

(

a

b

c

x

)

进行某一操作。

此类问题常在数值积分时出现。

解决方案:

1

.使用全局变量

可在主调函数和被调函数中分别将

a,b,c

声明为全局变量

(

global

a b c

)

,这时

f

通过全局

变量传递

abc,

定义时可以只有一个参数

x

2

.使用

anonymous function

3

.使用

nested function

下面举例说明

anonymous function

nested function

的使用。

例:

对任意二次多项式

ax

2

+bx+c

进行数值积分

(此处显然可以解析得到,此例使用

anonymous

function

做演示)

解:(

1

)使用匿名函数

编写文件

intpoly2.m

如下

function

y_int=intpoly2

(

a,b,c

)

y_int=quad

(

@

(

x

)(

poly2

(

a,b,c,x

))

,

0

1

)

;

%

此处利用

matlab

内部函

%

quad(fun, x0,xt)

进行积分,

%

被积函数

fun

我们使用匿名函

%

"@(x)(poly2(a,b,c,x))"

以便

%

将自变量限制为

x.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值