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

### Ano (view profile)

on 16 May 2017
Latest activity Commented on by KSSV

### KSSV (view profile)

on 16 May 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```

KSSV

### KSSV (view profile)

on 16 May 2017

But what's the purpose of the code?

Ano

### Ano (view profile)

on 16 May 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

### KSSV (view profile)

on 16 May 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
```

Ano

### Ano (view profile)

on 16 May 2017

I have tried to use break but my L is always = 1, do you have any other suggestions ??!

KSSV

### KSSV (view profile)

on 16 May 2017

YOu can simply use

```find(isnan(a))
```

### Walter Roberson (view profile)

on 16 May 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.