필터 지우기
필터 지우기

Creating a for loop based on a condition

조회 수: 2 (최근 30일)
Lorenzo Merlino
Lorenzo Merlino 2023년 12월 25일
이동: Dyuman Joshi 2023년 12월 26일
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.

채택된 답변

Walter Roberson
Walter Roberson 2023년 12월 25일
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()

추가 답변 (1개)

Torsten
Torsten 2023년 12월 25일
편집: Torsten 2023년 12월 25일
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)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by