How do I fix: Index exceeds array bounds.

j= 1:length(index_aanname);
for j= 1:length(index_aanname)
for l=1:length(alldata)
if ((strcmp(alldata(l,3), SA{j})) && ((TA(1,j) - alldata{l,1}) <= 10.0) && ((TA(1,j) - alldata{l,1}) >= 0) && (strcmp(alldata(l,4), 'Voor'))) == 1
eerste_kijkmoment(l) = tijdnum(l);
j=j+1;
end
end
end
j goes up to 240. I know that in the loop it goes to 241, that's why there is an error. But how do I fix this? I know it ask more often over here, but I cannot come to an answer...

2 Commenti

Hi,
Why you are using j=j+1?
What is the size of SA and TA?
Error occurs because of j=j+1. It cause increasing of j exceed SA or TA size.
I added SA.mat and TA.mat. I know the error is there because of j=j+1, but how can I fix it?

Risposte (1)

If you want to increment ‘j’ inside the ‘l’ loop, the easiuest way is to reverse the order of the for calls:
for l = 1:length(alldata)
for j = 1:length(index_aanname)
... CODE ...
end
end

2 Commenti

The error is gone, but it did not fix my problem. I have a file about footbal looking behaviour. I want the first 'viewing behaviour' (=eerste_kijkmoment) in the 10 seconds before every first ball touch (=aanname). Your code with my code gave all the viewing behaviour and not only the first viewing behaviour before the first ball touch. Can you help me?
I have no idea how to interpret your ‘SA’ and ‘TA’ data, or even what they mean or what you want to do with them.
I cannot help you further.

Questa domanda è chiusa.

Richiesto:

il 10 Giu 2018

Chiuso:

il 11 Giu 2018

Community Treasure Hunt

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

Start Hunting!

Translated by