Restarting a for-loop when a condition is met
Afficher commentaires plus anciens
I am trying to make a movie 60 frames long which shows a change in pressure profile over 60 months. I have a for-loop which calculates vector V for each month m=1:60. Then a nested for-loop which calculates the pressure at 101 equidistant points. This gives me 60 pressure profiles which I've been able to play frame-by-frame.
Problem: Now I want the first for-loop to restart whenever a pressure value drops below a value x. I've tried using an if-statement and a while-loop but I can't seem to get it to work/put it in the right place. Maybe this is because I've used the variable m in a lot of the subsequent calculations. I realize that the loop will never finish but I only need 60 iterations.
for m=1:N
V(m) = (4*q)/(pi*((d-wm*(m))^2));
for i = 1:n
P1(i,m) = p - r*g*H(i) - r/(2*(d-wm*(m)))*f*V(m)^2*D(i);
end
plot(P1(:,m),'r-')
title('Pressure along pipeline', 'FontSize', 14);
xlabel('Distance', 'FontSize', 14);
ylabel('Pressure [Pa]', 'FontSize', 14);
xlim([1 100]), ylim([0 p])
ss = strcat('Month',{' '},num2str(m));
legend(ss)
grid
M(:,m) = getframe;
pause(0.1)
end
5 commentaires
Walter Roberson
le 14 Sep 2015
When you say that you want the loop to restart, do you mean that you want to have the loop go back to m = 1 ? Or do you mean that you want to go on to the next iteration of m ?
dpb
le 14 Sep 2015
Why not vectorize the two loops and then just set the values of P<threshold == NaN? You could then create the movie from the computed data...
NotSoWiseman
le 14 Sep 2015
dpb
le 14 Sep 2015
'Not a Number' but the plotting routines ignore NaN when drawing. If you terminate the loop early, the sizes will be noncommensurate in array Pi and you'll have to have cell array to store the results or will get mismatch in lengths that have to deal with (although if you preallocate to NaN on size(m*n) you'll get to the same place in the end, just that using the vectorized solution is the more "Matlab-y" way, avoiding loops).
NotSoWiseman
le 14 Sep 2015
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Data Type Conversion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!