Command for Stopping the Analysis

When a variable (x) exeed the limit value (y) doing so after 5 times then stop the analysis.

1 Comment

Are you using a loop to update the variable (x) or check if x>y? If so, then you can use break.

Sign in to comment.

 Accepted Answer

Try something like this
exceedCount = 0;
for k = 1 : 1000000
% First update x in the loop. Then compare it to y.
if x > y
% x is greater than y.
% Increment the count of how many times this has happened.
exceedCount = exceedCount + 1;
% Quit loop if x has exceeded y 5 times.
if exceedCount >= 5
break;
end
end
end

7 Comments

Sir, my problem is like this so suggest me where i should use the exceedCount.
for K=1:10000
%u0 calculated from some loop
%ut input limit value
%uc input limit value
if u0<ut && u0<uc
no problem for exceedCount
elseif u0>ut
exceedCount calculated
else
exceedCount calculated
end
end
Not really sure what you want to do, or how your code checks for the "5 times" criteria, but your code can be simplified to this:
for K=1:10000
%u0 calculated from some loop
%ut input limit value
%uc input limit value
if (u0>ut) || ~(u0<ut && u0<uc)
exceedCount = exceedCount + 1
end
end
but this is just your code simplified. I don't know if it's right or not. I suspect it's not. Which of the ut or uc is the upper limit and which is the lower limit?
Maybe it should be
for K=1:10000
%u0 calculated from some loop
%ut upper limit value
%uc lower limit value
if (u0>ut) || (u0<uc)
% Out of acceptable range.
exceedCount = exceedCount + 1
end
end
What I originally gave is what I believe would be right given your original desciption of the problem.
Sir @Image Analyst, when i am comparing the u0 with ut and uc,
There are three different case in first case when u0<ut && u0>uc then no need to count the exceed.
But for the second case occured that is u0>ut and u0<uc then we have to count the exceed and this exceed is allwoed for five time after that if it is exceeding then we have to break the analysis.
So do this:
exceedCount = 0;
for k = 1 : 1000000
% First update x in the loop. Then compare it to y.
if (u0 > ut) || (u0 < uc)
% u0 is out of the acceptable range.
% Increment the count of how many times this has happened.
exceedCount = exceedCount + 1;
% Quit loop if x has exceeded y 5 times.
if exceedCount >= 5
break;
end
end
end
In the else/otherwise case, the exceedCount is not incremented. If you want, you can set the count back to zero in that case. It just depends on if you want to check on 5 times overall, even if there are gaps, or if you want the 5 times to be in adjacent elements.
Sir @Image Analyst, for my analsis requirement i have to consider the u0<ut && u0>uc for the same loop using elseif condition.
Then where i should use the exceedCount?
Seems inefficient, but you can do
exceedCount = 0;
for k = 1 : 1000000
% First update x in the loop. Then compare it to y.
if (u0 < ut) && (u0 > uc) % Signal is above min and below max.
% u0 is in the acceptable range.
% Do whatever.
else
% u0 is out of the acceptable range.
% Increment the count of how many times this has happened.
exceedCount = exceedCount + 1;
% Quit loop if x has exceeded y 5 times.
if exceedCount >= 5
break;
end
end
end
To learn other fundamental concepts, invest 2 hours of your time here:

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!