having one "for" loop instead of two

Hello all,
I have two "for" loops.
for a=0:10
for b=0:10
c=a+b;
end
end
I would like two combine them and put them in one "for" loop but I have error.
for a=0:10 && b=0:10
c=a+b;
end
Can anybody help me? thanks.

댓글 수: 2

Daniel Shub
Daniel Shub 2011년 11월 29일
This doesn't make any sense. You keep over writing c on every iteration.
Walter Roberson
Walter Roberson 2011년 11월 29일
You cannot iterate two variables in one "for"

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2011년 11월 29일

1 개 추천

Actually it is said already. But not explicitely:
a = 0:10;
b = 0:10;
for k = 1:length(a)
c = a(k) + b(k);
end

댓글 수: 4

Bahareh
Bahareh 2011년 11월 29일
Thanks Mr. Simon. Now if I want to have a surface plot using 'surfl' of 'c' versus 'a', and 'b' what should I do? Can you please help me?
Daniel Shub
Daniel Shub 2011년 11월 29일
See, now if you had asked this question from the outset, you would have had an answer by now ...
This is really a new question and should be asked as such.
Matt Tearle
Matt Tearle 2011년 11월 29일
This doesn't make sense, though. Your whole point was that you wanted to evaluate c at the same values of a and b, not at every combination of a and b. So you're not making a surface -- you're making a line (along the diagonal in a-b space). In other words, you don't have c(0,7) or c(3,2) or ..., which you need to make a surface. All you have is c(0,0), c(1,1), c(2,2), etc.
Walter Roberson
Walter Roberson 2011년 11월 29일
The new question that was created was http://www.mathworks.com/matlabcentral/answers/22579-surface-plot
I show how to embed the line within a surface there. It isn't a useful thing to do in this situation, but perhaps it will be useful for someone else.

댓글을 달려면 로그인하십시오.

추가 답변 (4개)

Matt Tearle
Matt Tearle 2011년 11월 29일

1 개 추천

As Walter said, you can't loop over two variables in the same for-loop. So the real question is: why do you want to do this? What's the problem with the two nested loops that you're trying to avoid/fix/solve?

댓글 수: 1

Bahareh
Bahareh 2011년 11월 29일
In the two loop case, each value of a corresponds to 11 values of b. I wan each value of a be corresponding to one value of b; in other words, I wan a=0 be corresponding to b=0 and a=5 be corresponding to b=5?

댓글을 달려면 로그인하십시오.

Hin Kwan Wong
Hin Kwan Wong 2011년 11월 29일

0 개 추천

Your code does not make sense because it's overwriting c each time you loop it Your answer is just equal to c = last a + last b = 10+10 = 20
If you want to sum all c values: a=0:10; b=a; sum([a+b])
Walter Roberson
Walter Roberson 2011년 11월 29일

0 개 추천

for a=0:10
b = a;
c = a + b;
end
Michael
Michael 2011년 11월 29일

0 개 추천

From the comments I think you want the surface c = a + b
Just use a nested loop
c = zeros(11);
for a = 0:10
for b = 0:10
c(a+1,b+1) = a + b;
end
end
surf(a,b,c)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

태그

질문:

2011년 11월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by