Array-Multiplikation und matrix-inversion mit VBA
Ich versuche zu tun, einige Berechnungen mit arrays.
z.B. ich möchte lösen Ax=y
, so dass ich den folgenden code verwenden, um so zu tun, wobei a Eine quadratische matrix ist und y ein col. vector. In VBA, A ist ein array mit zwei-dimension und y ist eins mit einer dimension. Aber dieser code funktioniert nicht...
x = WorksheetFunction.MMult(WorksheetFunction.MInverse(A), y)
Wo habe ich falsch? Danke!
- Definiere "funktioniert nicht".
- Charlesworth Es gibt nichts und aufhören zu laufen...
- Nichts? Keine Fehlermeldung? Bitte zeigen Sie uns-code, die das tun können... Haben Sie versucht, schrittweise durch den code im debug-Modus?
- Möglicherweise finden Sie nicht invertieren dieser matrix interessant. Achten Sie darauf, Lesen die Kommentare auch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie werden der Begehung einer oder mehrerer der vielen Fehler:
Variant
(die Meisten worksheetfunctions wird nicht funktionieren, wenn Daten-Typ ist etwas anderes alsVariant
).A
undy
nicht übereinstimmen, wie Sie benötigen, um für die matrix-Multiplikation.y
Größe ist(1,2)
statt(2,1)
wie im Beispiel unten.Hier ist ein Beispiel, das funktioniert:
Lassen-matrix Eine (3 x 3) ein array in
Range("A1:C3")
-, matrix - y (3 x 1) ein array inRange("E1:E3")
- und matrix - x (3 x 1) ein array inRange("G1:G3")
. Dann versuchen Sie dieses einfache Programm:Durch die Verwendung der gleichen Verfahren, die Sie tun können, diese zu finden, das Ergebnis der Multiplikation von einer matrix (n x m) mit einer matrix (p x q). Natürlich zur Vereinfachung sollten Sie Variablen deklarieren erste. Ich hoffe, diese Antwort kann dir helfen.