Interpolating linearly between many values in a vector

1 vue (au cours des 30 derniers jours)
Mitch Hezel
Mitch Hezel le 14 Août 2019
Modifié(e) : Stephen23 le 16 Août 2019
I am using a sensor which updates time information at 1Hz, but samples data at 1kHz. Therefore I have a time array like so:
t_old =
if the collect was n seconds long. I would like 999 other time stamps in between the already existing ones. So the result ought to be
t_new =

Réponses (2)

Adam Danz
Adam Danz le 14 Août 2019
Modifié(e) : Adam Danz le 16 Août 2019
Set the 'resampleRate' to 1000 if you want [1,2] to become [1.001, 1.002, ... 2.999].
'timestamps' is your original vector.
resampleRate = 1000;
timestamps = 1:10; %must be a vector
timeStampsResampled = reshape((timestamps(:) + linspace(0,1-1/resampleRate,resampleRate)).',1,[]);

Stephen23
Stephen23 le 16 Août 2019
Modifié(e) : Stephen23 le 16 Août 2019
>> t_old = 1:10; % times 1:N
>> rate = 1000; % 1 kHz
>> t_new = linspace(t_old(1),t_old(end),(numel(t_old)-1)*rate+1);

Catégories

En savoir plus sur Interpolation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by