Matrizenmultiplikation
11.05.2008 09:57:00
Frank
Ich habe mir ein Makro zur Mulitplikation von Matrizen gebaut. Dafür benutze ich diesen Befehl: Application.WorksheetFunction.MMult
Das Problem ist, dass die Zeilenanzahl von Matrix1 mit der Spaltenanzahl von Matrix2 übereinstimmen muss. Aber natürlich möchte ich auch Matrizen multiplizieren, die diese Bedingung nicht erfüllen! Kann mir hier jemand damit helfen? Das wäre sehr nett.
Danke & Gruß, Frank Czygan
Hier der Makro Code:
Sub Makro1()
Sheets(4).Activate
Cells.Select
Selection.ClearContents
Dim X() As Variant
Dim Y() As Variant
Dim Z() As Variant
Sheets(1).Activate
a = Sheets(3).Cells(3, 1)
b = Sheets(3).Cells(3, 2)
ReDim Preserve X(1 To a, 1 To b)
For c = 1 To a
For d = 1 To b
X(c, d) = Cells(c, d)
Next
Next
Sheets(2).Activate
e = Sheets(3).Cells(7, 1)
f = Sheets(3).Cells(7, 2)
ReDim Preserve Y(1 To e, 1 To f)
For g = 1 To e
For h = 1 To f
Y(g, h) = Cells(g, h)
Next
Next
i = Sheets(3).Cells(11, 1)
j = Sheets(3).Cells(11, 2)
ReDim Preserve Z(1 To i, 1 To j)
' populating z
For a = 1 To i
For b = 1 To j
Z(a, b) = Application.WorksheetFunction.MMult(X, Y)
Next
Next
Sheets(4).Activate
For a = 1 To i
For b = 1 To j
Cells(a, b) = Z(a, b)
Next
Next
Range("A1").Select
End Sub