Attempted to access cols3(6); index out of bounds because numel(cols3)=5

1 view (last 30 days)
Hello, I get an error when I run my code. This is the part that gives me prob. Actually, the length of cols3 in my data can vary depending on the data set I am using. In this specific example, the real length of cols3 is 5.
for i=1:length(cols3)
dat{i}=newdata(1:6,cols3(i):cols3(i+1));
end
  2 Comments
Paola
Paola on 3 Oct 2017
newdata is a 6XN matrix. The above is not the complete code. Actually the whole code doesn't give me errors. Only when I add this "for" at the end...

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 3 Oct 2017
Well, yes your code is never going to work, you set i to iterate from 1 to the numbers of elements in cols3, yet you access cols3(i+1). When i is equal to the index of the last element then cols3(end+1) is not valid.
One possible way to fix this may be to stop at the end-1:
for i = 1 : numel(cols3)-1 %numel is safer than length

More Answers (0)

Community Treasure Hunt

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

Start Hunting!