having one "for" loop instead of two
조회 수: 2 (최근 30일)
이전 댓글 표시
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
채택된 답변
Jan
2011년 11월 29일
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
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
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
2011년 11월 29일
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?
Hin Kwan Wong
2011년 11월 29일
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])
댓글 수: 0
Michael
2011년 11월 29일
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)
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Mathematics and Optimization에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!