Azzera filtri
Azzera filtri

how to exit a for loop if a condition is true?!

89 visualizzazioni (ultimi 30 giorni)
Ano
Ano il 16 Mag 2017
Commentato: KSSV il 16 Mag 2017
hello! I would like to exit a for lopp is a condition is true but my code doesn't seem to work, could you help me to figure out where is the problem?! Thank you best regards!
a= [ 1 2 3 5 8 6 8 8 2 8 2 8 2 8 2 1 nan 45 56 89];
for i= 1:length(a)
indx1 = find(isnan(a));
if ~isempty (indx1)
L = i ;
return
end
end
  2 Commenti
KSSV
KSSV il 16 Mag 2017
But what's the purpose of the code?
Ano
Ano il 16 Mag 2017
I need to get the index where the first nan is encountered and stop the loop as the main code should look for a critical point where the behavior starts to change

Accedi per commentare.

Risposte (2)

KSSV
KSSV il 16 Mag 2017
a= [ 1 2 3 5 8 6 8 8 2 8 2 8 2 8 2 1 nan 45 56 89];
for i= 1:length(a)
indx1 = find(isnan(a));
if ~isempty (indx1)
L = i ;
break
end
end
  2 Commenti
Ano
Ano il 16 Mag 2017
I have tried to use break but my L is always = 1, do you have any other suggestions ??!

Accedi per commentare.


Walter Roberson
Walter Roberson il 16 Mag 2017
L = find(isnan(a), 1, 'first');
with no loop.
You are testing the same vector of values each time, all of a, so your result would always be either 1 or not found.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by