MATLAB: Index exceeds matrix dimensions.

forindexloopmatrix

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?

Best 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.