Covariance et matrice (vba)

pheron -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, je suis débutante et je bloque à un certain niveau !! si je pouvais avoir un p'tit coup de pouce svp !

Function moyennesColonnes(T, n, p As Integer) As Integer

Dim MC() As Integer
Dim i As Integer
Dim j As Integer
Dim s As Integer

ReDim MC(1 To p) As Integer

For j = 1 To p
s = o
For i = 1 To n

s = s + T(i, j)

Next i

MC(j) = s \ n

moyennesColonnes = MC(j)

Worksheets(1).Cells(i + 12, 1).Value = "Les moyennes des colonnes:"
Worksheets("Feuil1").Cells(i + 12, 1).Font.ColorIndex = 5
Worksheets("Feuil1").Cells(i + 12, j + 2) = MC(j)
Worksheets("Feuil1").Cells(i + 12, j + 2).Font.ColorIndex = 5

Next j


End Function 'moyennesColonnes.

Sub variancesColonnes(T, n, p As Integer)

Dim MC() As Integer
Dim VC() As Integer
Dim i, j As Integer
Dim s As Long

ReDim VC(1 To p) As Integer


For j = 1 To p
For i = 1 To n

s = s + T(i, j) * T(i, j)

Next i




VC(j) = s \ n - MC(j) * MC(j) ===>> c'est la que ça coince ! "l'indice n'appartient pas à la sélection "



Worksheets(1).Cells(i + 18, 1).Value = "La variance des colonnes:"
Worksheets("Feuil1").Cells(i + 18, 1).Font.ColorIndex = 3
Worksheets("Feuil1").Cells(i + 18, j + 2) = VC(j)
Worksheets("Feuil1").Cells(i + 18, j + 2).Font.ColorIndex = 3

Next j

End Sub 'variancesColonnes

5 réponses

neogenesis Messages postés 4748 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Salut si j'ai bien compris ce qui coince est situé hors de la boucle ?
la variable i est locale à la boucle, et donc à l'extérieur, i ne vaut rien !
0
pheron
 
ce qui coince est à l'intérieur de la boucle j. je cherche à calculer la covariance de chaque colonne de la matrice. en fait il faudrait appeler le résultat de la moyenne de chaque colonne.
0
neogenesis Messages postés 4748 Date d'inscription   Statut Contributeur Dernière intervention   521
 
Et ton p, à savoir le dernier indice de tes matrices, tu lui assignes une valeur ?!
0
pheron
 
p c'est le nombre de colonnes du tableau et n le nombre de lignes.

j = indice des colonnes

i= indice des lignes
0
neogenesis Messages postés 4748 Date d'inscription   Statut Contributeur Dernière intervention   521 > pheron
 
Et le p tu le défini quand tu appelle la méthode moyenne ?
0
toto
 
Bonjour

Ton tableau MC n'est pas dimensionné dans la fonction variancesColonnes
0
pheron
 
ah ben oui ! ça a l'air de marcher maintenant ! merci bcp !!
0
bbgirl Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour, j'aurais une question comment introduis-tu la covariance dans ton programme sachant que la covariance c'est: est la moyenne des produits moins le produit des moyennes.
en terme de programme on a par exemple:
Function Cov(X() As Single, Y() As Single, n As Integer)
Dim j As Integer
Dim s As Single
For j = 1 To n
s = s + X(j) * Y(j)
Next i
Cov = s / n - MX * MY
End Function
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour à tous,

ça a l'air de marcher maintenant ! merci bcp !!

Function moyennesColonnes(T, n, p As Integer) As Integer 
... 
    For j = 1 To p 
.... 
        moyennesColonnes = MC(j) 

        Worksheets(1).Cells(i + 12, 1).Value = "Les moyennes des colonnes:" 
    Next j 
... 

- une fonction ne peut retourner qu'une seule valeur (qui peut être une matrice mais ce n'est pas le cas ici).
- une fonction ne peut modifier son environnement, donc écrire dans une cellule.

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
0