How to get my for loop working?

3 views (last 30 days)
I want to fill an empty matrix with values that equal the size of other matrices, being muscles. I tried looping over the different muscles, but the loop gives me a matrix with 6 times the size of last muscle, instead of 6 different numbers.
Here's my code:
Names2 = {'soleus', 'tibant', 'gaslat', 'vaslat', 'rectfem', 'hamlat'};
Vars2 = {soleus, tibant, gaslat, vaslat, rectfem, hamlat};
nvars = length(Vars2);
Duration = zeros(6,3);
for s = 1 : nvars
for d = 1:6
Duration(d,1) = length(IndexMuscleActGait.(names2{s}));
This gives me a matrix with in the first colum 6 times the number 50, which equals length of IndexMuscleActGait of the last muscle. However, I want the length of the 6 different muscles, and I can't find the right command to get it working.

Accepted Answer

Walter Roberson
Walter Roberson on 22 Dec 2015
for s = 1 : nvars
Duration(s,1) = length(IndexMuscleActGait.(names2{s}));
Renato Agurto
Renato Agurto on 22 Dec 2015
for s = 1 : nvars
Duration2(s,1) = length(IndexMuscleActGait.(names2{s}));
Duration2(s,2) = length(IndexMuscleActStairUp.(names2{s}));
Duration2(s,3) = length(IndexMuscleActStairDown.(names2{s}));
for s = 1 : nvars
Duration2(s,1:3) = [length(IndexMuscleActGait.(names2{s})),...

Sign in to comment.

More Answers (1)

Renato Agurto
Renato Agurto on 22 Dec 2015
Edited: Renato Agurto on 22 Dec 2015
I think you should use
Duration(d,s) = ... %not Duration(d,1)
or maybe what you want is
Duration(d,1) = length(IndexMuscleActGait.(names2{d}));
if this last is correct, why do you have 2 for loops?
  1 Comment
Inti Vanmechelen
Inti Vanmechelen on 22 Dec 2015
That would mean I get 6 columns as well, and I only want 3.
Sorry, I didn't copy enough code for you to understand my full intention. The part I copied above has to give me 6 different numbers in the first column of the matrix.
Then I would repeat the same loop for IndexMuscleActStairUp (instead of Gait) and these 6 six numbers would fill the second column. Then i'd have a third column containing the lengths of IndexMuscleActStairDown.
So the 3 columns of 'Duration' cover the motion, the rows cover the lengths of the IndexMuscleActGait.(names2{s}) matrices.

Sign in to comment.


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!