How can I correct this error?

1 回表示 (過去 30 日間)
flashpode
flashpode 2022 年 2 月 22 日
編集済み: David Hill 2022 年 2 月 22 日
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
Voss 2022 年 2 月 22 日
% 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

その他の回答 (1 件)

David Hill
David Hill 2022 年 2 月 22 日
編集済み: David Hill 2022 年 2 月 22 日
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));

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by