Filter löschen
Filter löschen

Creating a for loop based on a condition

2 Ansichten (letzte 30 Tage)
Lorenzo Merlino
Lorenzo Merlino am 25 Dez. 2023
Verschoben: Dyuman Joshi am 26 Dez. 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.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 25 Dez. 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()

Weitere Antworten (1)

Torsten
Torsten am 25 Dez. 2023
Bearbeitet: Torsten am 25 Dez. 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)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by