How do I index a vector in a for loop? I should be able to call the first entry of the vector a with a(1); however, I get an error when I have this as my for requirement. The error says unbalanced or unexpected parenthesis.
Here is a simplified version of my code.
a = [1 2 3]; b = [4 5 6];
for a(1) AND b(1);
suma = a + 1;
sumb = b +1;
end

 Accepted Answer

I do not understand what you want to do.
One of these should work:
a = [1 2 3]; b = [4 5 6];
for k = 1:min([numel(a) numel(b)])
suma = a(k) + 1;
sumb = b(k) + 1;
end
or:
suma = 0; sumb = 0;
for k = 1:min([numel(a) numel(b)])
suma = a(k) + suma;
sumb = b(k) + sumb;
end
or:
suma = sum(a);
sumb = sum(b);
or maybe something else ...

3 Comments

Thank you. This answer seems to be in the right direction.
What is the min in:
for k = 1:min([numel(a) numel(b)])
... from your first MATLAB code answer.
That simply prevents the index from reading a shorter vector beyond the number of elements it has. (Here, they are both the same size.)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!