# How can I plot a smooth curve by using discrete data?

21 views (last 30 days)
Liton Pradhan on 9 Sep 2020
Commented: Liton Pradhan on 11 Sep 2020
k= [1, 2, 3, 4, 5]
x= [0.00744754, 0.0622484, 0.213328, 0.509606, 1]
y= [0.794477, 0.749407, 0.736212, 0.729962, 0.726323]
z= [1.42813, 1.31861, 1.2831, 1.26558, 1.25514]
plot x, y, z w.r.t k

Joel Van Sickel on 9 Sep 2020
Hello Liton,
you can use the interp functions to interpolate between your existing data points to smooth them out. To make it look like a curve, use spline interpolations: ex:
figure
knew = [1:0.01:5];
xnew = interp1(k,x,knew,'spline');
plot(k,x,'o',knew,xnew,':.');
title('Spline Interpolation');
Regards,
Joel

Liton Pradhan on 9 Sep 2020
What about for remaining two variables Y and Z. What can I write, if I have to use all X, Y, Z variables at a time by using Interpolation command.
Joel Van Sickel on 9 Sep 2020
you can call it seperately for each variable for 1d plots, if you need multi-dimensional plots, you can use the same approach, but with a higher order interpolation. Start here for resources on that: https://www.mathworks.com/help/matlab/interpolation.html
Liton Pradhan on 11 Sep 2020
thank you so much