matlab quadl 出现维数不一致该如何解决
如下面一个简单的code:a=;
ff=@(x)(exp(-a.*x.^2/2)/(2*pi)^0.5);
I=quadl(ff,0,10)
运行时出现:
??? Error using ==> times
Matrix dimensions must agree.
Error in ==> @(x)(exp(-a.*x.^2/2)/(2*pi)^0.5)
Error in ==> quadl at 70
y = feval(f,x,varargin{:}); y = y(:).';
求个算法,可以不用循环,能算出a分别取3个值时I的结果,谢谢 Ref: 5F, 常见的程序出错问题整理 http://forum.vibunion.com/thread-46001-1-1.html 本帖最后由 rocwoods 于 2011-8-9 15:29 编辑
>> format long
>> a=;
ff=@(x,n)(exp(-a(1:n).*x.^2/2)/(2*pi)^0.5);
Qv = quadv(@(x)ff(x,3),0,10)
Qv =
0.500000068500102 0.288675265043162 0.250000120681336或者:
>> arrayfun(@(a) quadl(@(x)(exp(-a.*x.^2/2)/(2*pi)^0.5),0,10),a)
ans =
0.500000000033699 0.288675136866528 0.250000000214327
结果有少许出入是因为积分主要的函数quadl和quadv不同。
Matrix dimensions must agree.
这个报错基本原因是a与x的大小不同!
LZ参考下这个帖
关于带参数的积分问题 http://forum.vibunion.com/thread-42369-1-1.html 回复 3 # rocwoods 的帖子
学习了,多谢 回复 4 # ChaChing 的帖子
恩恩,解决了我的问题,还学到了新的知识,多谢多谢
页:
[1]