Asked by Locks
on 10 Apr 2013

hi,

I have used this code here:

for i=1:length(data8(:,1))

if(data8(i,8)>1.1) data8(i,:) = []; end if(data8(i,8)<0.9) data8(i,:) = []; end end

where data 8 is a matrix with 8 columns, and I get this error message:

Index exceeds matrix dimensions.

Error in construct_data (line 43) if(data8(i,8)>1.1)

has anybody an idea why this can happen?

*No products are associated with this question.*

Answer by Cedric Wannaz
on 10 Apr 2013

Edited by Cedric Wannaz
on 10 Apr 2013

Accepted answer

length(data8(:,1))

is evaluated only once at the beginning of the FOR loop. It is e.g. 10. Then you remove rows from `data8` , whose size therefore decreases (9 rows, 8 rows, ..). At one point the loop index (that is still incremented until it hits 10) becomes larger than the remaining number of rows in `data8`.

Opportunities for recent engineering grads.

## 0 Comments