interpolation for a matrix per row

1 visualización (últimos 30 días)
Jake Bowd
Jake Bowd el 12 de Jun. de 2020
Comentada: Jake Bowd el 14 de Jun. de 2020
Hi,
I have a 50x91 double in a structure for which I would like to interpolate each row and save as a 50 x 101.
My script works fine if I specify a specific row to interpolate, however I cannot solve to interpolate for each row.
My code is:
% Normalising walks to 101 data points
for j = 1:size(procfiles,1);
n1=size(RESULTS.Kinematics(j).data,2); %number of samples per walk
t0=linspace(1,n1,n1); %original time vector
t1=linspace(1,n1,101); %new time vector of 101 points
RESULTS.Kinematics(j).Resampled = interp1(t0,(RESULTS.Kinematics.data),t1,'linear');
end
Many thanks in advance.
Best wishes,

Respuesta aceptada

Stephen23
Stephen23 el 12 de Jun. de 2020
You forgot the indexing here:
interp1(t0,(RESULTS.Kinematics(j).data),t1,'linear')
% ^^^ missing
  3 comentarios
Stephen23
Stephen23 el 14 de Jun. de 2020
Editada: Stephen23 el 14 de Jun. de 2020
Your code:
interp1(t0(RESULTS.Kinematics(j).data),t1,'linear');
% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ why are you now indexing into t0 ?
Try this instead:
interp1(t0,RESULTS.Kinematics(j).data,t1,'linear');
Jake Bowd
Jake Bowd el 14 de Jun. de 2020
Hi Stephen,
Thank you so much. I now have a working code doing what I need it too :).
Best wishes,

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Interpolation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by