'Not enough input arguments' error when using integral function

3 次查看(过去 30 天)
So i have this function
function y = aRIC_rea(W,x)
R=W(1); Rp=W(2); Cp=W(3); I=W(4); Ce=W(5);
A=1+((2*pi*x).*Rp*Cp).*((2*pi*x).*Rp*Cp);
a1= (2*pi*x).*(I.*A-Rp*Rp*Cp);
a2= A.*(1-(2*pi*x).*(2*pi*x)*I*Ce)+(2*pi*x).*(2*pi*x)*Rp*Rp*Cp*Ce;
a3= R.*A+Rp;
num= a1.*a2-(2*pi*x).*a3.*a3*Ce;
a4= (2*pi*x).*Ce.*a3;
denom= a2.*a2+a4.*a4;
y= num./denom;
end
I try to integrate in a separate script
W1 = [0.8329 5.9045 0.0178 0.0032 0.0011]
X1 = reshape(X,1,24)
funRea = @(W1,X1)aRIC_rea(W1,X1)
q = integral(funRea,5,Xres)
I get this error
funRea =
@(W1,X1)aRIC_rea(W1,X1)
Not enough input arguments.
Error in static0analysisaric>@(W1,X1)aRIC_rea(W1,X1)
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 static0analysisaric (line 55)
q = integral(funRea,5,Xres)

回答(1 个)

Stefan Rickli
Stefan Rickli 2017-3-28
编辑:Stefan Rickli 2017-3-28
Your code lacks the definition of X and Xres to run on my machine but I'll still give it a try.
I assume that the line
q = integral(funRea,5,Xres)
means that you want 'funRea' to be evaluated from 5 to some scalar 'Xres'.
I also deduct from your code that you want 'funRea' to be evaluated from x = 5 to Xres.
In order to achieve that you need a basic structure like
W = [1.1 2.2 3.3];
f_handle = @(x) my_function(x,W);
integral(f_handle,5,10)
function y = my_function (x1,x2)
y = x1.^2 + x2(1);
end
Notice that 'integral' expects a function handle with only one input, here it's 'x'. The second input of 'my_function' gets fed directly during the declaration of the function handle 'f_handle = @(x) my_function(x,W)'.

类别

Help CenterFile Exchange 中查找有关 Matrix Computations 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by