Hallo
Ich habe eine Matrix A mit m Zeilen und n Spalten, sowie eine Matrix B mit p Zeilen und n+1 Spalten, ferner ist p größer als m. In der A Matrix sind alle Koeffizienten binäre, also 0 oder 1. In der B Matrix ist die erste Spalte eine natürliche Zahl zwischen 0 und m (das gleiche m wie die Zeilenzahl von A) und die restlichen n Spalten sind hier ebenfalls binär. Die natürlichen Zahlen in der ersten Spalten kommen mehrfach vor.
Hier ein Beispiel wie die Matrizen aussehen können:
A-Marix:
0 0 0
1 1 0
0 0 1
1 1 1
B-Marix:
1 0 0 0
2 1 0 0
2 0 1 0
2 1 1 0
3 0 0 1
4 1 0 1
4 0 1 1
4 1 1 1
Mein Ziel ist nun das Skalarprodukt von jedem (binären!) Zeilenvekor aus B (also ohne die erste Spalte) mit demjenigen Zeilenvektor aus A zu berechnen, dessen Zeilenindex gegeben ist durch die natürliche Zahl aus der ersten Spalte der B-Matrix.
Im Beispiel:
(0 0 0) aus A multipliziert mit (0 0 0) aus B, weil die 1 in der ersten Spalte in der ersten Zeile nur einmal vorkommt. Dann (1 0 0) mal (1 1 0) sowie (0 1 0) mal (1 1 0) und (1 1 0) mal (1 1 0) weil die Zwei in drei Zeilen von B steht und diese Zwei den zweiten Zeilenvektor aus A repräsentiert. Dann das selbe Vorgehen einmal für die Drei und zuletzt Drei mal für die Vier.
Am Ende möchte ich so eine (m x p)-Matrix C erhalten, in der alle diese Skalarprodukte stehen.
Mein Hauptproblem ist nun, dass ich konzeptionell nicht weiss wie so etwas zu programmieren ist. Von Hand ist ganz klar was ich meine und wie das geht, aber wie programmiert man das?
Danke für die Hilfe und Grüße