Bonjour,
En fait, j'étais entrai de travailler sur un bout de code qui utilise les boucles for.
le alpha est un réel à donner en input et x est un vecteur à donner aussi en entrée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
en exécutant ce code il m'affiche:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
En plus en utilisant une boucle while le programme n'entre pas du tout dans la boucle.
merci pour votre aide
Partager