Effacer les filtres
Effacer les filtres

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

89 vues (au cours des 30 derniers jours)
Ano
Ano le 16 Mai 2017
Commenté : KSSV le 16 Mai 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 commentaires
KSSV
KSSV le 16 Mai 2017
But what's the purpose of the code?
Ano
Ano le 16 Mai 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

Connectez-vous pour commenter.

Réponses (2)

KSSV
KSSV le 16 Mai 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 commentaires
Ano
Ano le 16 Mai 2017
I have tried to use break but my L is always = 1, do you have any other suggestions ??!
KSSV
KSSV le 16 Mai 2017
YOu can simply use
find(isnan(a))

Connectez-vous pour commenter.


Walter Roberson
Walter Roberson le 16 Mai 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.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by