In R ist c (3,1,0) * c (2,0,1) == c (6,0,0). Dies ist kein Punktprodukt und kein Kreuzprodukt. Erstens, wie heißt dieses Produkt und zweitens funktioniert es in WinBUGS, OpenBUGS und / oder JAGS?
In R ist c (3,1,0) * c (2,0,1) == c (6,0,0). Dies ist kein Punktprodukt und kein Kreuzprodukt. Erstens, wie heißt dieses Produkt und zweitens funktioniert es in WinBUGS, OpenBUGS und / oder JAGS?
Antworten:
Martyn Plummer weist darauf hin, dass dies in JAGS implementiert ist, was ich beim Lesen des Handbuchs vermisst habe. Ab Kapitel 5:
Skalarfunktionen mit skalaren Argumenten werden automatisch vektorisiert. Sie können auch aufgerufen werden, wenn die Argumente Arrays mit konformen Dimensionen oder Skalare sind. So kann beispielsweise der Skalar mit der Matrix hinzugefügt werden
B <- A + c
anstelle der ausführlicheren Form
D <- dim(A) for (i in 1:D[1]) for (j in 1:D[2]) { B[i,j] <- A[i,j] + c } }
Um eine elementweise Multiplikation durchzuführen, können Sie in diesen Sprachen einfach eine for-Schleife erstellen und fertig! Ich habe für Schleifen in WinBUGS ohne Probleme verwendet.
Im Übrigen wird die elementweise Multiplikation zweier Vektoren gleicher Länge als Hadamard-Produkt (auch bekannt als Schur-Produkt) bezeichnet.