incrémentation dans une boucle
Bonjour,
En fait, j'étais entrai de travailler sur un bout de code qui utilise les boucles for.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
numDistinctValues = numel(unique(x));
prob=zeros(1);
for i=1:numDistinctValues
ipOcurrences = numel(find(x==valuesX(i)));
p(i) = ipOcurrences/numValues;
prob=[prob p(i)];
end
I_var(1)=var(prob(1:L));
cumvar=zeros(1);
for i=1:8
I_cum=prob(2:i*L-1);
I_var(i)=var(I_cum);
cumvar=[cumvar I_var(i)];
end
varcum(1)=cumvar(1);
for i=2:8
varcum(i)=(1-alpha).* varcum(i-1)+alpha.* cumvar(i);
varcum=[varcum(1) varcum(i)];
i=i+1
end |
le alpha est un réel à donner en input et x est un vecteur à donner aussi en entrée.
en exécutant ce code il m'affiche:
Code:
1 2 3 4
| ??? Attempted to access varcum(3); index out of bounds because numel(varcum)=2.
Error in ==> divers_calcul at 89
varcum(i)=(1-alpha).* varcum(i-1)+alpha.* cumvar(i); |
Je ne sais pas pourquoi il s'arrête sur l'indice 2 dans la dernière boucle pourtant j'ai vérifié que les deux autre boucles contiennet les éléments nécessaires pour la construction des éléments de la derière boucle.
En plus en utilisant une boucle while le programme n'entre pas du tout dans la boucle.8O
merci pour votre aide