nonlinear curve fitting: how to add an extra data vector?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi, I know how to fit a curve to the ' ydata ' vector, e.g.:
opt = fitoptions('Method','NonlinearLeastSquares',...
'Startpoint',[1,0.2]);
fun = fittype('p1*cos(x)+p2*sin(x)','options',opt);
[fitobject,gof,output] = fit(time',ydata,fun)
However, I would like to include an additional data vector [same size as time and ydata(time) ] as a non-free time varying parameter [ pdata(time) ] to the function, so that we have something along this form:
fun = fittype('pdata*(p1*cos(x)+p2*sin(x))','options',opt);
Does anyone know how to implement this?
0 comentarios
Respuestas (1)
Matt J
el 24 de Sept. de 2014
Editada: Matt J
el 24 de Sept. de 2014
You can specify the model as an anonymous function and pass parameters to that in the usual way and/or you could use the 'problem' input option to fittype/fit, see
2 comentarios
Matt J
el 25 de Sept. de 2014
fun = fittype( @(p1,p2,x) pdata.*(p1.*cos(x)+p2.*sin(x)),'problem','pdata');
[fitobject,gof,output] = fit(time',y,fun,'problem',pdata)
Ver también
Categorías
Más información sobre Linear and Nonlinear Regression en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!