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

1 visualizzazione (ultimi 30 giorni)
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 Commenti
Paola
Paola il 3 Ott 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...

Accedi per commentare.

Risposta accettata

Guillaume
Guillaume il 3 Ott 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

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by