How to change parameters in exp2 fit???

2 vues (au cours des 30 derniers jours)
Alexandra
Alexandra le 28 Juil 2013
Hello, Sorry for the question, im just a very beginner. I am using f=fit(Wavelength_sal_cor(517:1293),Salinity_and_Particle_corrected_spectra(517:1293),'exp2');
It calculate all 4 coefficients, but sometimes I have negative values, then fit is not good, I want to set parameters of second exp as constants 'c' as meaning(at defined x): Salinity_and_Particle_corrected_spectra(998), and d as -0.01. But I don´t understand how to do.
Could you help me please?

Réponses (2)

Shashank Prasanna
Shashank Prasanna le 28 Juil 2013
You can specify a custom model with your requirements instead of using the exp2
model = @(z)z(1)*exp(z(2)*x)+Salinity_and_Particle_corrected_spectra(998)*exp(-0.01*x)
% Where c = Salinity_and_Particle_corrected_spectra(998) and
% d = -0.01
f=fit(Wavelength_sal_cor(517:1293),Salinity_and_Particle_corrected_spectra(517:1293),model);
You could also specify 'StartPoint','Lower' and 'Upper' bounds to get better results.
There are examples in the documentation on how to fit custom models:
  2 commentaires
Shashank Prasanna
Shashank Prasanna le 28 Juil 2013
Modifié(e) : Shashank Prasanna le 28 Juil 2013
Lets forget about your code for a moment. Are you able to run the example in the documentation link I provided without any errors?
If that is working fine then we may need more info about your code.
If the documentation example also shows the same error, you may have a path issue. Try restoredefaultpath
Jon Cherrie
Jon Cherrie le 21 Août 2013
I think that the anonymous function, model, is not set up correctly for use by Curve Fitting Toolbox. Try this instead:
c = Salinity_and_Particle_corrected_spectra(998);
d = -0.01;
model = @(a, b, x) a*exp( b*x ) + c*exp( d*x );
f = fit( Wavelength_sal_cor(517:1293), Salinity_and_Particle_corrected_spectra(517:1293), model );
To get good results, you will probably need to supply an estimate of the start point, StartPoint.

Connectez-vous pour commenter.


Alexandra
Alexandra le 28 Juil 2013
Thank you for answer! I get ??? Error using ==> subsindex Function 'subsindex' is not defined for values of class 'function_handle'. when trying to fit the model Do you know what does it mean?
  1 commentaire
Shashank Prasanna
Shashank Prasanna le 28 Juil 2013
What you posted here is not an answer to your questions but rather a comment to my answer. Please see my reply on the comment to my answer.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by