我在MATLAB中找出以下等式中的错误时遇到了问题:
a=@(z,q)(z.^2 + q.^2);
a1=@(q) integral(@(z) a(z,q),1,10);
首先,我想在a
中仅对z
进行有限积分,在数字限制内,让我们说1
和10
,然后我想绘制{关于a1
,{1}}。
当我使用以下命令执行上述操作时:
q
我收到以下错误:
plot(linspace(0,3e8), a1(linspace(0,3e8)))
任何人都可以指出错误。
注意:我希望同时将Matrix dimensions must agree.
Error in untitled>@(z,q)(z.^2+q.^2)
Error in untitled>@(z)a(z,q)
Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
Error in untitled>@(q)integral(@(z)a(z,q),1,10)
和z
作为向量
答案 0 :(得分:1)
MATLAB函数integral
默认计算单个积分,而不是积分数组。 option 'ArrayValued'
将允许您集成一个返回多个值的函数,例如a
:
a = @(z,q)(z.^2 + q.^2);
x = linspace(0,3e8);
y = integral(@(z)a(z,q),1,10,'ArrayValued',true);
plot(x,y)