求教大神matlab问题,怎么修改以下语句

ab=sym('[xy,xy,xy,xy]');ac=integral2(ab(3),0,1,0,1)错误:Errorusingintegral2(line83)Firs... ab=sym('[xy,xy,xy,xy]');
ac=integral2(ab(3),0,1,0,1)

错误:
Error using integral2 (line 83)
First input argument must be a function handle.
展开
 我来答
tianxiawulang
推荐于2016-01-27 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2573万
展开全部

integral2是计算数值积分的,前面为什么要把ab定义成符号量?

 

1、用符号积分

>> ab=sym('[x*y,x*y,x*y,x*y]');
>> ac=int(int(ab(3),0,1),0,1) 
ac = 
1/4

2、用数值积分:

>> ac=integral2(@(x,y)x*y,0,1,0,1)
ac =
    0.2500
追问
上面的这个是用来当例子的,其实是定义了一个很大的符号矩阵,都是一些不连续的二维函数,用int的话,应该无法积分吧,本人新手,求大神指导,多谢。
追答

那就试一下下面的做法吧:

>> dblquad(eval(sprintf('@(%s)%s',findsym(ab(3)),vectorize(char(ab(3))))),0,1,0,1)
ans =
    0.2500

 我的版本比较老,没有integral2函数,用dblquad代替。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式