How to create a matrix from a vector using specified values

2 views (last 30 days)
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.

Accepted Answer

Geoff Hayes
Geoff Hayes on 3 Nov 2015
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 Comments
John Harry
John Harry on 3 Nov 2015
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.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!