beyondhxf 发表于 2008-11-10 21:23

编写一个matlab函数,如何让自变量里含有一个函数?

问题很简单,就是编写了一个函数,
functin f= fun(x)
f=quad(inline('cos(x)','x'),0,x.^2)

是这样的,这里是对cos积分,那如果我想对别的函数积分,就要在源程序里修改。
如果我想在fun函数的自变量里,就可以输入这个被积函数的话,就不用改了。就好像diff函数一样
diff(cos(x),x,1);
ans =
   -sin(x)
大侠帮帮忙!

[ 本帖最后由 ChaChing 于 2010-3-21 11:00 编辑 ]

ch_j1985 发表于 2008-11-10 21:45

回复 楼主 beyondhxf 的帖子

将被积函数设为字符串可否?

sogooda 发表于 2008-11-10 23:16

回复 楼主 beyondhxf 的帖子

没时间给例子了,提示一下吧,用函数句柄,或者用字符串也可以。

beyondhxf 发表于 2008-11-13 21:05

回复 板凳 sogooda 的帖子

在你有空时候,给个简单的例子,谢谢。再拜!

beyondhxf 发表于 2008-11-17 10:03

回复 楼主 beyondhxf 的帖子

问题已经解决,使用函数句柄,匿名函数(anonymous function)均可解决。

flg618730 发表于 2010-3-21 09:34

回复 楼主 beyondhxf 的帖子

您是怎么做的?我也遇到了相同的问题!麻烦您给讲讲!谢谢!

ChaChing 发表于 2010-3-21 11:04

回复 6楼 flg618730 的帖子

2/3/5F不是有说明?

beyondhxf 发表于 2010-3-24 17:39

回复 6楼 flg618730 的帖子

今天有空,给你一个具体例子吧:
就给一个句柄函数的调用例子:
函数部分(一个极为简单的函数):
function a=test(f)
a=f(1)
调用部分:
test(@(x) x^2+x)

ans =

2
如果你的函数是有两个自变量的,那么稍作变动如下:
函数部分
function a=test(f)
a=f(1,2)
调用部分:
test(@(x,y) x^2+y)

ans =

3


[ 本帖最后由 beyondhxf 于 2010-3-24 17:43 编辑 ]
页: [1]
查看完整版本: 编写一个matlab函数,如何让自变量里含有一个函数?