MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# 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.

## Products

Answer by Shashank 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
```
```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:

http://www.mathworks.com/help/curvefit/fit.html#bto2vuv-11

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