loop until condition met
Mostrar comentarios más antiguos
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
Respuesta aceptada
Más respuestas (1)
kjetil87
el 1 de Sept. de 2013
A while loop is what you are looking for it seems.
while ~all([Va==Vo,Vo==Vn])
%your code
end
5 comentarios
kjetil87
el 1 de Sept. de 2013
or maybe its more efficient with
while (Va~=Vo) && (Vo~=Vn)
end
harley
el 1 de Sept. de 2013
harley
el 1 de Sept. de 2013
harley
el 1 de Sept. de 2013
kjetil87
el 1 de Sept. de 2013
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.
Categorías
Más información sobre Startup and Shutdown en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!