Covariance et matrice (vba)
pheron
-
eriiic Messages postés 25847 Statut Contributeur -
eriiic Messages postés 25847 Statut Contributeur -
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
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
A voir également:
- Covariance et matrice (vba)
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Find vba - Astuces et Solutions
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
5 réponses
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 !
la variable i est locale à la boucle, et donc à l'extérieur, i ne vaut rien !
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour à tous,
ça a l'air de marcher maintenant ! merci bcp !!
- 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.
ç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.