Effacer les filtres
Effacer les filtres

Creating a for loop based on a condition

2 vues (au cours des 30 derniers jours)
Lorenzo Merlino
Lorenzo Merlino le 25 Déc 2023
Déplacé(e) : Dyuman Joshi le 26 Déc 2023
Hello everyone, I need to create a for loop which iterates until it is met a specific condition, which in my case is the output being equal to a certain value. I know a while loop would suffice, though I would require a for-loop in order to use the index of the iteration to store the output of said iteration into an array, so that I can have a full accountability of all the results the loop gets.
  1 commentaire
Dyuman Joshi
Dyuman Joshi le 25 Déc 2023
Déplacé(e) : Dyuman Joshi le 26 Déc 2023
Use break or return.

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 25 Déc 2023
for K = 1 : inf
do some calculation
stored_results(K) = the_output
if the_output == the_certain_value
break;
end
end
or
K = 0;
while true
do some calculations
K = K + 1;
stored_results(K) = the_output;
if the_output == the_certain_value
break;
end
end
However... remember that the == operator is looking for bit-for-bit equality, and it is possible that you cannot get bit-for-bit equality due to round-off and finite precision . You are typically better off checking to see whether the output is "close enough" to the desired value, such as with ismembertol()

Plus de réponses (1)

Torsten
Torsten le 25 Déc 2023
Modifié(e) : Torsten le 25 Déc 2023
i = 0;
tolerance = 1e-4;
imax = 100;
output = 1;
value = ...;
while abs(output-value) > tolerance && i < imax
i = i + 1;
... % compute something
output = ...;
OutputArray(i) = output;
end
plot(1:i,OutputArray)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by