Я думаю, что вы, вероятно, ищете подход и метод сплайна. Сплайн-объекты MATLAB позволяют восстанавливать кривую, используя только функцию (ppval
).
например,
% original curve 1
x = linspace(0, 4);
y = cos(2 * pi * x);
subplot 221
plot(x, y)
title('Original Curve 2')
% fitted curve 1
p = pchip(x, y);
s = spline(x, y);
subplot 223
plot(x, ppval(p, x), x, ppval(s, x))
legend('pchip','spline')
title('Fitted Curve 1')
% original curve 2
nSample = 1001;
x = linspace(0, 1e-2, nSample);
nPulse = 9;
c = [linspace(0.001, 0.009, nPulse); (7/8).^(1:nPulse)]';
y = pulstran(x, c, @gauspuls, 10000, 0.5);
subplot 222
plot(x, y)
title('Original Curve 2')
% fitted curve 2
p = pchip(x, y);
s = spline(x, y);
subplot 224
plot(x, ppval(p, x), x, ppval(s, x))
legend('pchip','spline')
title('Fitted Curve 2')