MATLAB Answers


How to change parameters in exp2 fit???

Asked by Alexandra
on 28 Jul 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?


2 Answers

Answer by Shashank Prasanna
on 28 Jul 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

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:


Shashank Prasanna
on 28 Jul 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
on 21 Aug 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.

Answer by Alexandra
on 28 Jul 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 Comment

Shashank Prasanna
on 28 Jul 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.

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today