loop until condition met
이전 댓글 표시
im trying to create a loop until a certain condition exists by using the results at the end of each loop to calculate the next iteration. I've shown part of the code below. Iteration to terminate when Va = Vo = Vn.
Vo = [30 15 13 10];% initial V old to calc Re and f.
Va=zeros(size(Vo));
Vn=zeros(size(Vo));
%
while ~all([Va==Vo,Vo==Vn])
%
Re1 = (D(1).*Vo(1)) / nu;
%
Re2 = (D(2).*Vo(2)) / nu;
%
Re3 = (D(3).*Vo(3)) / nu;
%
Re4 = (D(4).*Vo(4)) / nu;
%
A = [Matrix];
b = [Matrix];
Vn = A\b;% solves four unknowns at A\b
%
for i = 1:4
Va(i) = (alpha * Vn(i)) + ((1-alpha) * Vo(i));
Vo(i) = Va(i); %Used as Vo for each in next iteration.
end
end
채택된 답변
추가 답변 (1개)
kjetil87
2013년 9월 1일
A while loop is what you are looking for it seems.
while ~all([Va==Vo,Vo==Vn])
%your code
end
댓글 수: 5
kjetil87
2013년 9월 1일
or maybe its more efficient with
while (Va~=Vo) && (Vo~=Vn)
end
harley
2013년 9월 1일
harley
2013년 9월 1일
harley
2013년 9월 1일
kjetil87
2013년 9월 1일
The error is because Va and Vn is not defined yet. Either pre define or use the answer below. Also note the different compare method used, because i doubt the 3 vectors will be EXACTLY equal so therefor it is better to compare using a threshold.
카테고리
도움말 센터 및 File Exchange에서 Startup and Shutdown에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!