How can I fit data to a sine curve?

163 次查看(过去 30 天)
Given a set of data points, how can I find the curve of best fit if I know that this will be a sine curve and nothing else?

回答(2 个)

John D'Errico
John D'Errico 2019-9-28
I'll guess the model you want is as below, but use the curve fitting toolbox.
Your model might be defined as:
ft = fittype('sin((x - shift)/xscale)*yscale','coefficients',{'shift','xscale','yscale'})
ft =
General model:
ft(shift,xscale,yscale,x) = sin((x - shift)/xscale)*yscale
Now just call fit to fit the model to your data.
mdl = fit(X,Y,ft,'startpoint',[shiftguess,xscaleguess,yscaleguess]);
Other toolboxes have similar capability, but not quite as easy to use as the CFTB. (Stats TB, optimization TB)
  1 个评论
Careniena Opem
Careniena Opem 2019-9-28
I do not have the curve fitting toolbox, but I do have stats and optimization.

请先登录,再进行评论。


Star Strider
Star Strider 2019-9-28
It just uses core MATLAB functions. No toolboxes needed at all.

类别

Help CenterFile Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by