to find cosine fit and residual ?
5 次查看(过去 30 天)
显示 更早的评论
I have this data as X data column
1. [624.0397 743.4188 641.3096 764.2928 698.1912 832.8933 799.6397 767.3729 735.1792 703.093 671.0012 638.9143 605.9839 668.0182 0 0 0 0 0 0]
Y column
1. [8.071650105 8.144216751 8.177926597 8.171846343 8.073710465 7.999249364 8.00676841 8.064808175 8.061246346 8.064100517 8.041524691 8.045426565 8.068412239 8.225694432 0 0 0 0 0 0]
As the same way I am having data set for third column having x data set and again fourth column I am having y data set as so on upto 520, and also all having same number of element mean column having same number of element and some zero values also.
and want to smooth, cosine fit and want to compute residual for this I have tried
x=[];
y=[];
for j=1:519
x=AC(:,j+1);
y=AC(:,j);
xx=find(y);
xxx=max(xx);
y1=smooth(x,y(1:xxx),'moving',5);
fitted_curve=cos(x);
end
errors are ??? Error using ==> smooth at 131 X and Y must be the same length.
So how can I fit in cosine and compute residual of fit.
0 个评论
回答(1 个)
Tom Lane
2013-4-2
It appears you start with x and y taken from columns of AC, so they are the same length. Then when you call smooth you pass only part of y. Perhaps you also want to pass the same elements of x.
The fit function (Curve Fitting Toolbox) has the ability to fit Fourier series and sums of sines (equivalent to cosines for your purposes). Try "help fit" and see if that gets you pointed in the right direction.
2 个评论
Tom Lane
2013-4-2
If you need to evaluate the fit at specified x values, as you show in your example with polyval, then the output from the fit command supports that directly:
x = rand(100,1);
y = cos(x) + randn(100,1)/10;
f = fit(x,y,'sin1')
xx = linspace(0,1);
plot(x,y,'bx',xx,f(xx),'r-')
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!