Curve Fitting Using External Function

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?

Réponses (1)

Image Analyst
Image Analyst le 7 Oct 2021
Did you try
XYFit=fittype(@MyFitFunction(a,X),..........................

4 commentaires

Saeid
Saeid le 7 Oct 2021
If I do that, I get this error message:
File: FitElong.m Line: 8 Column: 33
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
Sorry I don't have that toolbox so I can't try anything. Maybe try
XYFit=fittype(@MyFitFunction,..........................
Saeid
Saeid le 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 le 18 Oct 2021
Call tech support because I don't have that function.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Linear and Nonlinear Regression dans Centre d'aide et File Exchange

Produits

Version

R2021b

Question posée :

le 6 Oct 2021

Commenté :

le 18 Oct 2021

Community Treasure Hunt

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

Start Hunting!

Translated by