How can I create a curve that will fit my data?
4 次查看(过去 30 天)
显示 更早的评论
The following is my code:(2x2 dataset imported from an excel file, 21 values for y and 21 values for x)
x=dataset1(:,1);
y=dataset1(:,2);
plot(x,y,'Marker','.','MarkerSize',20);
xlabel('Photon Energy(eV)')
ylabel('Harmonic Intensity(a.u.)')
axis square
I am getting this displayed:
But I am trying to plot it like this:
*I tried using the fit and lsqcurvefit but those only gave me best fit lines(unless I used them incorrectly). The closest thing I've got to was inputting S = x(:)\y(:), but that didn't give the same results as the figure.
It's my frist time using MATLAB, let alone programming. Any help would be appreciated.
采纳的回答
Image Analyst
2022-6-24
fitnlm in the Statistics and Machine Learning Toolbox, since 2013b, though you should probably upgrade your antique 8 year old version.
0 个评论
更多回答(1 个)
Image Analyst
2022-6-24
I can see from what you did plot that there are not enough points in "dataset" to get the three colored curves that you are hoping to get. You'll need a lot more points.
But if you did, do you have a model for your curve? Perhaps an exponential decay times a cosine wave added to a downward ramp?
y = a1 * exp(a2 * x) .* cos(a3 * x) + a4 * x + a5;
If you have any more questions, then attach your data and code to read it in with the paperclip icon after you read this:
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interpolation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!