En R, c (3,1,0) * c (2,0,1) == c (6,0,0). Este no es un producto punteado y no es un producto cruzado. Primero, ¿cuál es el nombre de este producto, y segundo, funciona en WinBUGS, OpenBUGS y / o JAGS?
En R, c (3,1,0) * c (2,0,1) == c (6,0,0). Este no es un producto punteado y no es un producto cruzado. Primero, ¿cuál es el nombre de este producto, y segundo, funciona en WinBUGS, OpenBUGS y / o JAGS?
Respuestas:
Martyn Plummer señala que esto se implementa en JAGS, lo que me perdí al leer el manual. De Ch 5:
Las funciones escalares que toman argumentos escalares se vectorizan automáticamente. También se pueden invocar cuando los argumentos son matrices con dimensiones conformes o escalares. Entonces, por ejemplo, el escalar se puede agregar a la matriz usando
B <- A + c
en lugar de la forma más detallada
D <- dim(A) for (i in 1:D[1]) for (j in 1:D[2]) { B[i,j] <- A[i,j] + c } }
Para hacer una multiplicación basada en elementos, puede hacer un bucle for en esos idiomas y ¡listo! He usado bucles en WinBUGS sin problemas.
Por cierto, la multiplicación por elementos de dos vectores de igual longitud se denomina producto Hadamard (también conocido como producto Schur).