How to create a matrix from a vector using specified values

I have a column of hip angle data from a treadmill walking trial (roughly 1 min) with a length of 12113 elements. I have identified heel strikes in a separate vector of data that has a length of 55 elements (55 heel strikes). I want to create a matrix where each column is hip angle data between successive elements of the heel strike vector (each column represents one stride). I have tried for loops and while loops, but nothing has worked.
I was able to create a single column of data representing one stride (using the commands below), but I need to get all 54 strides into a matrix. Do any of you have suggestions to how I can create the matrix?
i = 1;
LHIP(:,1) = LHIP_Angles(LHEE_Strikes(i):LHEE_Strikes(i+1));
Thanks in advance.

 Respuesta aceptada

John - since it is unlikely that each stride has the same number of hip angles, you may want to use a cell array to store the data. Try the following
LHIP = cell(1,length(LHEE_Strikes)-1);
for k=1:length(LHEE_Strikes)-1
LHIP{k} = LHIP_Angles(LHEE_Strikes(k):LHEE_Strikes(k+1));
end

3 comentarios

Hi, Geoff.
Your suggestion worked great and I can now double click on the specific element in the cell array to display the hip angles for each stride.
Is there a way to convert the cell array to a data array so that I can call the data in a for loop? The task now is to time normalize each column of data to 101 data points and have them stored into one matrix.
Thanks again for your help!
I wanted to let you know that I figured out how to normalize the cell array (created with your code, Geoff) and normalized it to 101 data points and then converted to a matrix.
Thanks again.
Awesome - glad to have been able to help, John!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 3 de Nov. de 2015

Comentada:

el 3 de Nov. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by