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?
Dies ist nur eine elementweise Multiplikation. Ich bin nicht sicher, ob es in WinBUGS, OpenBUGS oder JAGS funktioniert.
normal
Antworten:
3
Im Gegensatz zu JAGS führen WinBUGS und OpenBUGS diese Form der Vektorisierung nicht durch. Sie müssen eine Schleife schreiben und jedes Element 'von Hand' berechnen, wie oben beschrieben.
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 werdencEIN
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.
Antworten:
Im Gegensatz zu JAGS führen WinBUGS und OpenBUGS diese Form der Vektorisierung nicht durch. Sie müssen eine Schleife schreiben und jedes Element 'von Hand' berechnen, wie oben beschrieben.
quelle
Martyn Plummer weist darauf hin, dass dies in JAGS implementiert ist, was ich beim Lesen des Handbuchs vermisst habe. Ab Kapitel 5:
quelle
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.
quelle
Im Übrigen wird die elementweise Multiplikation zweier Vektoren gleicher Länge als Hadamard-Produkt (auch bekannt als Schur-Produkt) bezeichnet.
quelle