interpolation for a matrix per row

1 visualizzazione (ultimi 30 giorni)
Jake Bowd
Jake Bowd il 12 Giu 2020
Commentato: Jake Bowd il 14 Giu 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,

Risposta accettata

Stephen23
Stephen23 il 12 Giu 2020
You forgot the indexing here:
interp1(t0,(RESULTS.Kinematics(j).data),t1,'linear')
% ^^^ missing
  3 Commenti
Stephen23
Stephen23 il 14 Giu 2020
Modificato: Stephen23 il 14 Giu 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 il 14 Giu 2020
Hi Stephen,
Thank you so much. I now have a working code doing what I need it too :).
Best wishes,

Accedi per commentare.

Più risposte (0)

Categorie

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

Community Treasure Hunt

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

Start Hunting!

Translated by