nonlinear curve fitting: how to add an extra data vector?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (1)
Matt J
am 24 Sep. 2014
Bearbeitet: Matt J
am 24 Sep. 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 Kommentare
Matt J
am 25 Sep. 2014
fun = fittype( @(p1,p2,x) pdata.*(p1.*cos(x)+p2.*sin(x)),'problem','pdata');
[fitobject,gof,output] = fit(time',y,fun,'problem',pdata)
Siehe auch
Kategorien
Mehr zu Linear and Nonlinear Regression finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!