how to stop simulation when enter in a infinite loop
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mudasir Ahmed
am 4 Jul. 2015
Kommentiert: Mudasir Ahmed
am 4 Jul. 2015
hi
how i deal in a situation where by mistake infinite loop initiate or where i want to see step by step response of any program or loop. kindly help me
regards
1 Kommentar
B.k Sumedha
am 4 Jul. 2015
Bearbeitet: B.k Sumedha
am 4 Jul. 2015
U can use debug option or else use breakpoints.
Akzeptierte Antwort
Geoff Hayes
am 4 Jul. 2015
Mudasir - sometimes, if I have written some code that makes use of a while loop, I will include a maximum iteration counter to prevent the code from getting stuck in that loop. For example, if the while loop looks something like
while someCondition
% do something
end
then I would change this to
MAX_ITERATIONS = 1000;
iterCount = 0;
while someCondition && iterCount <= MAX_ITERATIONS
% do something
iterCount = iterCount + 1;
end
if iterCount > MAX_ITERATIONS
fprintf('exited loop perhaps because max iteration count reached\n');
end
5 Kommentare
Geoff Hayes
am 4 Jul. 2015
Mudsair - fitness must have more than one row. Note that fitness(:,1) will return a column vector of ones and zeros and so it is this column that is causing a problem with the conditional operator. What does the condition
fitness(:,1) > 2
mean to you? Are you checking to see if all elements in the first column are greater than 2? Or, is this condition considered true (by you) if at least one element in the first column is greater than 2?
all(fitness(:,1)>2)
to return a single logical value (0 or 1). If the latter, then use any to determine if at least one value in your column is non-zero (i.e. one) as
any(fitness(:,1)>2)
Try the option that best suits your needs.
Weitere Antworten (0)
Siehe auch
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!