Curve Fitting Using External Function

12 views (last 30 days)
Saeid
Saeid on 6 Oct 2021
Commented: Image Analyst on 18 Oct 2021
Using the Curve Fitting Toolbox, is it possible to put the fitting function outside of the fittype? A general example of the way I want this to be is:
FitOpt=fitoptions('Method', 'NonlinearLeastSquares','Lower',0.1*Y00, 'Upper',10*Y00,'StartPoint',Y00);
XYFit=fittype(MyFitFunction(a,X),'dependent', {'y'}, 'independent' , {'x'},'coefficient', {'E'});
f1 = fit(x0,y0,XYFit,FitOpt)
.
.
.
function F0=MyFitFunction(a,x)
F0=a*x.^2-1./x);
end
Where I would like MyFitFunction to be outside the fittype definition, but when I try this I get this error message:
Unrecognized function or variable 'a'
If I take the function into the fittype and write:
XYFit=fittype(@(a,X) a*x.^2-1./x),'dependent', {'y'}, 'independent' , {'x'},'coefficient', {'E'});
then it will work, but this is not the form that I want.
How is this possible?

Answers (1)

Image Analyst
Image Analyst on 7 Oct 2021
Did you try
XYFit=fittype(@MyFitFunction(a,X),..........................
  4 Comments
Saeid
Saeid on 18 Oct 2021
Hi,
whenI do that, I see a new error message:
Error using fittype>iCreateFittype (line 362)
First input argument must be a string scalar or character vector, cell array or anonymous function.
Error in fittype (line 330)
obj = iCreateFittype( obj, varargin{:} );
Image Analyst
Image Analyst on 18 Oct 2021
Call tech support because I don't have that function.

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!