Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
08.01.2013 16:47:01 |
ArtBCI |
|
|
|
09.01.2013 11:50:41 |
Gast75364 |
|
|
|
09.01.2013 14:34:21 |
ArtBCI |
|
|
|
09.01.2013 14:43:08 |
Gast81837 |
|
|
|
09.01.2013 16:50:40 |
ArtBCI |
|
|
|
09.01.2013 16:56:06 |
ArtBCI |
|
|
Invertierung einer Matrix mit großer Dimension |
09.01.2013 23:17:36 |
Trägheit |
|
|
|
09.01.2013 23:24:20 |
Gast90886 |
|
|
Von:
Trägheit |
Datum:
09.01.2013 23:17:36 |
Views:
2297 |
Rating:
|
Antwort:
|
Thema:
Invertierung einer Matrix mit großer Dimension |
Ok, ein Beispiel:
Option Explicit
Sub Beispiel()
Const C_ML_WORKSPACE As String = "base"
Dim oML As MLApp.MLApp
Dim A() As Double
Dim Ai() As Double 'inverse von Matrix A
Dim strA As String
Dim strAi As String
Dim strAii As String
Set oML = New MLApp.MLApp
A = RandomMatrix2D(2) 'zufällige VBA-Matrix erzeugen
With oML
.PutWorkspaceData "A", C_ML_WORKSPACE, A 'Matrix A -> Matlab
.Execute "Ai = inv(A)" 'Inverse von Matrix A berechnen und in Ai speichern - als würde man es in Matlab eingeben
.Execute "Aii = inv(Ai)" 'Inverse von inverser Matrix A (also wieder A) berechnen - als würde man es in Matlab eingeben
Ai = .GetVariable("Ai", C_ML_WORKSPACE) 'Matrix Ai -> inverse Matrix A (zur Verwendung in VBA)
strA = .Execute("A") 'Matrix A als Zeichenkette
strAi = .Execute("Ai") 'Matrix Ai als Zeichenkette
strAii = .Execute("Aii") 'Matrix Aii als Zeichenkette (gleicht strA)
.Quit
End With
Set oML = Nothing
MsgBox strA & strAi & strAii 'Ausgabe aller drei Matrizen
End Sub
'Hilfsfunktion um ein Beispiel zu erzeugen
Function RandomMatrix2D(n As Long) As Double()
Const C_MIN As Double = 0
Const C_MAX As Double = 100
Randomize Timer
Dim m() As Double
Dim i As Long
Dim j As Long
ReDim m(0 To n - 1, 0 To n - 1)
For i = 0 To n - 1
For j = 0 To n - 1
m(i, j) = (C_MAX - C_MIN) * CDbl(Rnd()) + C_MIN
Next
Next
RandomMatrix2D = m
End Function
Gruß
|
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
- Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
- Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
- Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
- Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei
Antworten auf Ihren Beitrag zu benachrichtigen
Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
|
08.01.2013 16:47:01 |
ArtBCI |
|
|
|
09.01.2013 11:50:41 |
Gast75364 |
|
|
|
09.01.2013 14:34:21 |
ArtBCI |
|
|
|
09.01.2013 14:43:08 |
Gast81837 |
|
|
|
09.01.2013 16:50:40 |
ArtBCI |
|
|
|
09.01.2013 16:56:06 |
ArtBCI |
|
|
Invertierung einer Matrix mit großer Dimension |
09.01.2013 23:17:36 |
Trägheit |
|
|
|
09.01.2013 23:24:20 |
Gast90886 |
|
|