"Matrix dimensions must agree"计算积分时出错
"Matrix dimensions must agree" error when computing integral
我在 MATLAB 中找出以下等式中的错误时遇到了问题:
a=@(z,q)(z.^2 + q.^2);
a1=@(q) integral(@(z) a(z,q),1,10);
首先,我只想在 z
中对 a
进行有限积分,在数值范围内,比方说 1
和 10
,然后我想关于 q
绘制 a1
。
当我使用以下命令执行上述操作时:
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)
Here is a screenshot.
谁能指出错误。
注意:我想将 z
和 q
都作为 vector
MATLAB 函数 integral
默认计算单个积分,而不是积分数组。 option 'ArrayValued'
将允许您集成 returns 多个值的函数,例如您的 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)
我在 MATLAB 中找出以下等式中的错误时遇到了问题:
a=@(z,q)(z.^2 + q.^2);
a1=@(q) integral(@(z) a(z,q),1,10);
首先,我只想在 z
中对 a
进行有限积分,在数值范围内,比方说 1
和 10
,然后我想关于 q
绘制 a1
。
当我使用以下命令执行上述操作时:
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)
Here is a screenshot.
谁能指出错误。
注意:我想将 z
和 q
都作为 vector
MATLAB 函数 integral
默认计算单个积分,而不是积分数组。 option 'ArrayValued'
将允许您集成 returns 多个值的函数,例如您的 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)