Curve Fitting
Show older comments
I've been trying to fit different series/methods to a certain set of data. I have a polynomial fitted to the data: P = polyfit(x,y,3)
but I cannot get the fourier or the gaussian commands to work: p = fit(x,y,'fourier3)
Can someone help me?
Thanks
Answers (4)
Teja Muppirala
on 6 Jun 2012
As proecsm points out, your data needs to be made into columns. Like this:
x = 1:1000; %Row vector
y = sin(0.01*x) + cos(0.03*x) + 0.1*randn(size(x)); %Row vector
F = fit(x(:),y(:),'fourier3') %Use (:) to turn it into a column
plot(x,y)
hold on
plot(F)
Also, are you aware of the Curve Fitting Tool GUI?
cftool
This makes it easier to try out different fits interactively (for both curves and surfaces), and you can automatically generate MATLAB code from your results.
Brandon Armstrong
on 5 Jun 2012
0 votes
Does not work mean you get an error, or just that the fit is very bad? If it is not fitting properly you can try giving some initial guesses and and upper and lower bounds for your coefficients using 'fitoptions'.
bym
on 5 Jun 2012
polyfit()
will work with both row-oriented or column-oriented data, whereas the documentation specifically mentions columns for
fit()
I don't have the curve fitting toolbox to test this.
Categories
Find more on Get Started with Curve Fitting Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!