MySQL-Matrix-Multiplikation

8

Ich versuche Matrixmultiplikation für MySQL zu schreiben und stehe irgendwie fest:

Grundsätzlich sind meine Matrizen im Format
gespeichert [Zeile #, Spalte #, MatrixID, Wert], also zum Beispiel Matrix [3 x 2] wäre etwa:

%Vor%

entspricht: [[1 2 3], [4 5 6]]

folgt der Berechnung eines einzelnen Elements von matrix1 * matrix2 ganz gut:

%Vor%

dies in Funktion zu wickeln und dann eine andere Funktion zu verwenden, um über Zeilen- und Spaltennummern zu iterieren, könnte funktionieren, aber ich habe Probleme mit dem Generieren dieser Menge von Zahlen und dem Iterieren über sie mit SQL. Irgendwelche Ratschläge / Vorschläge sind willkommen

    
Azolin 19.03.2013, 14:45
quelle

3 Antworten

18

Versuchen Sie:

%Vor%

Beispiel hier .

(Ersetzen Sie 'mat01' und 'mat02' durch geeignete matrixID -Werte.)

    
Mark Bannister 19.03.2013, 15:54
quelle
1

Sie können die gesamte Berechnung in SQL durchführen. Sie geben nur ein Beispiel mit einer einzelnen Matrix, die, weil sie nicht quadratisch ist, nicht mit sich selbst multipliziert werden kann.

Hier ist die Idee:

%Vor%     
Gordon Linoff 19.03.2013 15:25
quelle
0

Ich weiß, dass dies die SQL-Server-Syntax ist, aber Sie sollten mit der entsprechenden MySql-Syntax beginnen. Die dünne Matrix scheint gut zu funktionieren.

%Vor%

ergibt:

%Vor%

Ich schlage jedoch vor, dass Sie dies auch auf Ihrer Grafikkarte durchführen. NVIDIA hat ein gutes Beispiel für die Implementierung der Matrixmultiplikation in ihrem C-Programmierleitfaden.

    
Pieter Geerkens 19.03.2013 15:56
quelle