# How can I correct this error?

1 view (last 30 days)
flashpode on 22 Feb 2022
Edited: David Hill on 22 Feb 2022
Hi, so as I run my code and it works but gets an error.
figure(1)
for k = 1:24:nfiles
nexttile
vend = 1:24;
bar(All_Horas(vend+k-1),All_PpH(vend+k-1))
xlabel('Hores'),ylabel('Distancia (km)');
title(sprintf('Març %d',floor(k/24)+1))
end
the error is the followed:
Index exceeds the number of array elements. Index must not exceed 496.
I understand why it happens, k goes in packs of 24 and there are just 496 elements so the division is not an entire number, but how can I make that the last plot has just the last elements till it reaches 496? Thank you in advance

Voss on 22 Feb 2022
% creating some random data:
nfiles = 496;
All_Horas = 1:nfiles;
All_PpH = randn(1,nfiles);
figure(1)
vend = 1:24;
for k = 1:24:nfiles
nexttile
idx = vend+k-1;
idx(idx > nfiles) = []; % remove any indexes greater than nfiles
bar(All_Horas(idx),All_PpH(idx))
xlabel('Hores'),ylabel('Distancia (km)');
title(sprintf('Març %d',floor(k/24)+1))
end
% now the last plot has 16 bars

### More Answers (1)

David Hill on 22 Feb 2022
Edited: David Hill on 22 Feb 2022
figure(1)
for k = 1:24:480
nexttile
vend = 1:24;
bar(All_Horas(vend+k-1),All_PpH(vend+k-1))
xlabel('Hores'),ylabel('Distancia (km)');
title(sprintf('Març %d',floor(k/24)+1))
end
bar(All_Horas(481:496),All_PpH(481:496))
xlabel('Hores'),ylabel('Distancia (km)');
title(sprintf('Març %d',20));

### Categories

Find more on Introduction to Installation and Licensing in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!