Pass curvefit start points into function
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Robert Demyanovich
le 27 Déc 2021
Réponse apportée : Voss
le 27 Déc 2021
I am new to Matlab, but have somehow figured out how to create a curve fitting function that is called by the main program. I need to curve fit many sets of data. The function has the following line of code:
opts.StartPoint = [226 26 1E07 0.4];
The points are currently hard coded, but I would like to pass into the curve fitting function a set of 4 starting points for each data set. The main routine will figure out the values of the four starting points and then I would like to pass these starting points in to the function.
The function is called from the main routine as follows:
[fitresult gof]=createFit(z,y);
0 commentaires
Réponse acceptée
Voss
le 27 Déc 2021
You can add an additional input argument to your createFit function:
function [fitresult gof] = createFit(z,y,startPoint) % use your existing input and output variable names
% your code
end
You can make it an optional argument by checking whether it was given, and if not, use the default:
function [fitresult gof] = createFit(z,y,startPoint) % use your existing input and output variable names
if nargin < 3
startPoint = [226 26 1E07 0.4]; % whatever default value
end
% your code
end
Then call createFit with 2 or 3 arguments:
[fitresult gof] = createFit(z,y); % no startPoint specified -> createFit will use the default defined in its function definition
[fitresult gof] = createFit(z,y,[226 26 1E07 0.4]); % explicitly using default startPoint -> same as no startPoint specified
[fitresult gof] = createFit(z,y,[0 0 0 0]); % using some other startPoint
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Statistics and Machine Learning Toolbox 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!