# How can I interpolate time?

11 visualizzazioni (ultimi 30 giorni)
Jaime De La Mota Sanchis il 8 Nov 2021
Commentato: Star Strider il 9 Nov 2021
Hello everyone.
I have a vector with times called
tim1_1
, of size 51*1, I also have measurements called
lam1_1
tim1_1
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.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Star Strider il 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);
figure
plot(tim1_1, lam_1, '.b')
hold on
plot(tim1_2, lam_1_2, '.r')
hold off
grid
legend('Original','Interpolated', 'Location','best')
Experiment to get different results.
.
##### 2 CommentiMostra NessunoNascondi Nessuno
Jaime De La Mota Sanchis il 9 Nov 2021
Thanks, I think I can work with this.
Star Strider il 9 Nov 2021
As always, my pleasure!
.

Accedi per commentare.

### Categorie

Scopri di più su Mathematics in Help Center e File Exchange

R2021b

### Community Treasure Hunt

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

Start Hunting!

Translated by