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

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 Comments

But what's the purpose of the code?
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

Sign in to comment.

Answers (2)

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 Comments

I have tried to use break but my L is always = 1, do you have any other suggestions ??!
YOu can simply use
find(isnan(a))

Sign in to comment.

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.

Categories

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

Tags

Asked:

Ano
on 16 May 2017

Commented:

on 16 May 2017

Community Treasure Hunt

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

Start Hunting!