plot smoothing to get a curve
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Lila wagou
il 10 Set 2016
Commentato: Star Strider
il 10 Set 2016
Hy how to use smooth option to get a curve plot
XA = 0:1:5
YA = 2.^XA
plot(XA,YA)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/156256/image.gif)
0 Commenti
Risposta accettata
Star Strider
il 10 Set 2016
Use the linspace function to create ‘XA’:
XA = linspace(0,5);
This creates 100 (by default) regularly-spaced elements for ‘XA’ between 0 and 5.
4 Commenti
Star Strider
il 10 Set 2016
The choice of 50 interpolation points is simply my choice.
It does work with those data:
XA = [4,8,12,14,15,15.5,16,20];
YA = [100,400,100,200,150,175,160,160];
x = XA;
y = YA;
xi = linspace(min(x), max(x), 150); % Evenly-Spaced Interpolation Vector
yi = interp1(x, y, xi, 'spline', 'extrap');
figure(1)
plot(x, y, 'bp')
hold on
plot(xi, yi, '-r')
hold off
grid
xlabel('X')
ylabel('Y')
legend('Original Data', 'Interpolation', 'Location', 'NE')
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/184580/image.png)
If it produces a different result than you get with Excel, it is because the interpolation method is different. The 'spline' method I used here may be correct, and Excel may be wrong. I have no idea what Excel uses. MATLAB offers several different interpolation methods, so choose the one that is most appropriate to your data.
Preferably, if you have an appropriate mathematical model of the process that produced your data, use it, and fit it to your data, rather than using interpolation.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Interpolation in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!