How can I get a smooth curve in MATLAB?

3 views (last 30 days)
x=[0:30:210];
%Composition
%Outlet Specification [PFAD(4)]
y=[44.0789 62.428 77.24324 85.35 89.435 91.353 92.504 92.6252];%FFA
z=[90.4422 59.243 32.241 13.8 5.232 1.2421 0.6243 0.5465];%TAG
plot(x,y,'-b',x,z,'--r')
title('composition vs time');
xlabel('time');
ylabel('xd');
legend('a) FFA','b)TAG');

Accepted Answer

Star Strider
Star Strider on 31 Jan 2023
One option is to interpolate to a finer ‘x’ vecttor, and then use a method such as 'pchip', 'spline', 'makima', or others to do a smoother interpolation.
Example —
x=[0:30:210];
%Composition
%Outlet Specification [PFAD(4)]
y=[44.0789 62.428 77.24324 85.35 89.435 91.353 92.504 92.6252];%FFA
z=[90.4422 59.243 32.241 13.8 5.232 1.2421 0.6243 0.5465];%TAG
figure
plot(x,y,'-b',x,z,'--r')
title('composition vs time');
xlabel('time');
ylabel('xd');
legend('a) FFA','b)TAG');
xv = linspace(min(x), max(x), numel(x)*10);
yv = interp1(x, y, xv,'pchip');
zv = interp1(x, z, xv,'pchip')
zv = 1×80
90.4422 87.5072 84.6033 81.7313 78.8918 76.0854 73.3127 70.5744 67.8711 65.2034 62.5720 59.9774 57.4068 54.8291 52.2552 49.6982 47.1711 44.6870 42.2591 39.9005 37.6243 35.4435 33.3713 31.4093 29.4769 27.5672 25.6940 23.8707 22.1111 20.4287
figure
plot(xv,yv,'-b',xv,zv,'--r')
title('composition vs time');
xlabel('time');
ylabel('xd');
legend('a) FFA','b)TAG');
.

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!