calling a function with lsqnonlin
3 views (last 30 days)
Show older comments
I'm attempting to call minimize the value of a function (chi2) using lsqnonlin as shown below
[fitpar,resnorm01,residual]=lsqnonlin(chi2,inpar,lb,ub,options);
the chi2 function works, but i get the following error ??? Error using ==> lsqfcnchk at 111 FUN must be a function, a valid string expression, or an inline function object.
it works when using the function handle @ (as shown below) [fitpar,resnorm01,residual]=lsqnonlin(@chi2,inpar,lb,ub,options);
but when I use the function handle i can't provide additional inputs to the function, i.e. @chi2(x,y,z) which would greatly simplify things downstream. Any advice?
0 Comments
Answers (1)
Sean de Wolski
on 8 Mar 2012
@(x,y,z)chi2(x,y,z)
You need to explictly declare the inputs. If there are none, leave it empty:
@()chi2(x,y,z)
For more info:
doc function_handle
1 Comment
Sulakshan Arya
on 6 Jul 2014
I am using fsolve command to solve nonlinear equation through Simulink MATLAB function.
If i use fsolve(@myfun,x0) i get Error using ==> "function handles are unsupported for MATLAB calls", and if i use fsolve(myfun,x0) i get Error using ==> lsqfcnchk at 111 FUN must be a function, a valid string expression, or an inline function object.
Any solution???
See Also
Categories
Find more on Function Creation in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!