How can I create a curve that will fit my data?
Afficher commentaires plus anciens
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.
1 commentaire
Alex Sha
le 24 Juin 2022
post out your data file if possible
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 24 Juin 2022
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:
1 commentaire
Elham
le 24 Juin 2022
Catégories
En savoir plus sur Interpolation dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
