How can I interpolate time?
4 views (last 30 days)
Jaime De La Mota Sanchis on 8 Nov 2021
I have a vector with times called
, of size 51*1, I also have measurements called
made at those times.
goes between 0 and 1.737857815507103e+03. Instead of 51 measurements I want to have an arbitrary number, let's say 200. I have tried to write
interpLam1_1R = interp1(tim1_1,lam1_1,1:tim1_1(end)/200:tim1_1(end),'spline');
Unfortunately, if I plot the obtained results, they don't look like the original ones at all. As can be seen in the attached figure, the original data (in blue) looks almost sinusoidal,meanwhile, the interpolated data looks almost as a straight line.
Can someone please help me with this problem?
Star Strider on 8 Nov 2021
Apparently ‘tim1_1’ is not a datetime array.
tim1_1 = linspace(0, 1.737857815507103e+03, 51);
lam_1 = sin(2*pi*1E-3*tim1_1);
tim1_2 = linspace(min(tim1_1), max(tim1_1), 200);
lam_1_2 = interp1(tim1_1, lam_1, tim1_2);
plot(tim1_1, lam_1, '.b')
plot(tim1_2, lam_1_2, '.r')
Experiment to get different results.