Multiplications multiples de matrices (MMult)
Bonjour,
Je bloque depuis quelques heures sur mon code vba. Mon idée est de multiplier une matrice affectée à un array(18,18) un nombre de fois indéterminé. J'utilise dès lors la fonction WorksheetFunction.MMult mais après plusieurs tentatives je continue de bloquer sur incompatibilités, affectations impossibles,... Je vous laisse la partie incriminée de mon code:
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 31 32 33 34 35 36 37 38 39
|
' Declaration of the couple matrix available in sheet ListandData
Dim GMat(1 To 18, 1 To 18) As Single
Dim GMat1()
Dim GMat2(1 To 18, 1 To 18) As Single
Dim GMat3()
' Recovering the matrix
For Counter1 = 1 To 18
For Counter2 = 1 To 18
Counterx1 = Counter1 - 1
Counterx2 = Counter2 - 1
GMat(Counter1, Counter2) = Sheets("ListAndData").Range(Sector) _
.Offset(Counterx1, Counterx2).Value
GMat1(Counter1, Counter2) = GMat(Counter1, Counter2)
Next Counter2
Next Counter1
' Operations on matrixes
If TTM > 2 Then
For Counter = 2 To Int(TTM)
GMat = Application.WorksheetFunction.MMult(GMat, GMat1)
If (Not (Int(TTM) = TTM) And Counter = Int(TTM)) Then
GMat1() = Application.WorksheetFunction.MMult(GMat, GMat1)
For Counter1 = 1 To 18
For Counter2 = 1 To 18
GMat(Counter1, Counter2) = GMat(Counter1, Counter2) + _
(GMat1(Counter1, Counter2) - GMat(Counter1, Counter2)) * (TTM - Int(TTM))
Next Counter2
Next Counter1
End If
Next Counter
End If
GMat3 = WorksheetFunction.MMult(GMat, WorksheetFunction.Transpose(Vector))
' Next Counter
' End If
GMat3 = WorksheetFunction.MMult(GMat1, WorksheetFunction.Transpose(Vector)) |
Ce code est à mon humble avis le plus proche d'être juste parmi les solutions que j'ai envisagées. Merci d'avance pour votre aide.