How to set stopping condition on time in nested for loop?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Noor Fatima
am 21 Okt. 2022
Kommentiert: Noor Fatima
am 21 Okt. 2022
tic
Time = 0;
flag = 0;
for kk = 1: n
some operations
for ii = 1:m
if Time >= Time_limit
flag = 1;
break
end
some operations
end
Time = toc;
if(flag==1)
break
end
end
But the above code does not stop when a time limit reached.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 21 Okt. 2022
tic
Time = 0;
for kk = 1: n
some operations
for ii = 1:m
Time = toc; %you just did some work, you might have reached the limit
if Time >= Time_limit; break; end
some operations
end
Time = toc; %you just did some work, you might have reached the limit
if Time >= Time_limit; break; end
end
The second call to toc is because you might have done some work when ii == m that put you over the time limit. There is no toc just before the end of the for ii loop so in the case where you left the for loop because you ran out of iterations, you have not updated the time.
0 Kommentare
Weitere Antworten (1)
David Hill
am 21 Okt. 2022
tStart = cputime;
c=0;
while 1
if cputime-tStart>20
break
end
c=c+1;
end
c
3 Kommentare
Siehe auch
Kategorien
Mehr zu Logical 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!