How to iterate this
조회 수: 4 (최근 30일)
이전 댓글 표시
Hi,
I need to iterate a series of equation for a problem. In particular I want to iterate them for 12 times. For the very first iteration I want to put two conditions (Lambda1dotZero=0 and Lambda=0); then from the second iteration onward Lambda1dotzero must be equal to the value of Lambda1dotZero of the previous iteration + a certain value DeltaOmega (which I know, and is constant). The same for Lambda, which from the second iteration onward, must be equal to that equation that you see in the loop (Lambda(m)=.....) + the value of Lambda of the previous iteration. Sorry but I am very new in Matlab, and this is the code that I wrote:
for m=1:1:12
while m==1;
Lambda1dotZero(m)=0;
Lambda(m)=0;
Lambda1dot(m)=Lambda2dot*t_days+Lambda1dotZero(m);
Lambda(m)=Lambda2dot*t_days^2/2+Lambda1dotZero(m)*t_days+Lambda(m);
end
while m>1;
Lambda1dotZero(m)=Lambda1dotZero(m-1)+DeltaOmega;
Lambda1dot(m)=Lambda2dot*t_days+Lambda1dotZero(m);
Lambda(m)=Lambda2dot*t_days^2/2+Lambda1dotZero(m)*t_days+Lambda(m-1);
end
end
When I run it, it doesn't give me errors but takes a long time without giving any results. Maybe I have created an infinite loop. I don't know. Many thanks to anyone who will help me.
Regards
Gian
댓글 수: 0
채택된 답변
Walter Roberson
2012년 11월 10일
for m=1:1:12
if m==1
Lambda1dotZero(m)=0;
Lambda(m)=0;
Lambda1dot(m)=Lambda2dot*t_days+Lambda1dotZero(m);
Lambda(m)=Lambda2dot*t_days^2/2+Lambda1dotZero(m)*t_days+Lambda(m);
end
if m>1
Lambda1dotZero(m)=Lambda1dotZero(m-1)+DeltaOmega;
Lambda1dot(m)=Lambda2dot*t_days+Lambda1dotZero(m);
Lambda(m)=Lambda2dot*t_days^2/2+Lambda1dotZero(m)*t_days+Lambda(m-1);
end
end
Remember, a while loop executes its body until the condition is false and does not go on to the next section until then, but since m was not changing in the body, your while loop was infinite.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!