Covariance et matrice (vba)

pheron -  
eriiic Messages postés 24581 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
Configuration: Windows Vista
Firefox 3.0.4

5 réponses

  1. neogenesis Messages postés 5303 Statut Contributeur 530
     
    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
  2. 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
  3. neogenesis Messages postés 5303 Statut Contributeur 530
     
    Et ton p, à savoir le dernier indice de tes matrices, tu lui assignes une valeur ?!
    0
    1. 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
      1. neogenesis Messages postés 5303 Statut Contributeur 530 > pheron
         
        Et le p tu le défini quand tu appelle la méthode moyenne ?
        0
  4. toto
     
    Bonjour

    Ton tableau MC n'est pas dimensionné dans la fonction variancesColonnes
    0
    1. pheron
       
      ah ben oui ! ça a l'air de marcher maintenant ! merci bcp !!
      0
    2. bbgirl Messages postés 4 Statut Membre
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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