Error : "Too many input arguments"
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello, wi type this code in matlab :
f = @(x)mseFunction(x(1),x(2),y,yS);
H=feval(f,xc(1),xc(2));
I get the following error :
Error using @(x)mseFunction(x(1),x(2),y,yS)
Too many input arguments.
Error in projbfgs (line 65)
H=feval(f,xc(1),xc(2));
I do not know where i made the mistake. Thanks!
0 commentaires
Réponse acceptée
Star Strider
le 3 Jan 2017
Modifié(e) : Star Strider
le 3 Jan 2017
If I remember correctly from your earlier Question, ‘mseFunction’ only has three arguments. If you want to pass it ‘y’ as well, you have to re-write the function definition to include it:
function MSE = mseFunction(alpha,beta,y,yS)
...REST OF YOUR CODE ...
end
EDIT — Please do not use feval here. Just call your function as:
H = f(x);
assuming that ‘y’ and ‘yS’ are already in your workspace.
4 commentaires
Star Strider
le 3 Jan 2017
I created a version of your function for testing purposes in my function testing ‘.m’ file.
When I ran the following code with it, it ran without error:
function MSE=mseFunction(alpha,beta,y,yS)
MSE = [alpha beta; y yS];
end
xc = [100; 102];
y = 20;
yS = 50;
f = @(x)mseFunction(x(1),x(2),y,yS);
H = f(xc)
H =
100 102
20 50
I cannot reproduce the problem you are getting.
Plus de réponses (1)
Niels
le 3 Jan 2017
Modifié(e) : Niels
le 3 Jan 2017
Hi,
yes, your defined f as a function with only 1 inputargument
f = @(x)mseFunction(x(1),x(2),y,yS);
but then you want it to have 2:
H=feval(f,-->xc(1),xc(2)<--);
so your x has to be a vector with length 2...
try
H=feval(f,xc);
or set f to
f = @(x1,x2)mseFunction(x1,x2,y,yS);
and
H=feval(f,xc(1),xc(2));
2 commentaires
Star Strider
le 3 Jan 2017
That won’t work here (see the previous Question Calculate the optimum of a function). The ‘mseFunction’ is an objective function for an optimisation routine, and takes a vector of parameters as an argument.
Voir également
Catégories
En savoir plus sur National Instruments Frame Grabbers dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!