Em R, c (3,1,0) * c (2,0,1) == c (6,0,0). Este não é um produto escalar e não é um produto cruzado. Primeiro, qual é o nome desse produto e, segundo, ele funciona no WinBUGS, OpenBUGS e / ou JAGS?
isso é apenas multiplicação por elementos. Não tenho certeza se ele funciona no WinBUGS, OpenBUGS ou JAGS.
assumednormal
Respostas:
3
Diferentemente do JAGS, o WinBUGS e o OpenBUGS não fazem essa forma de vetorização; você precisa escrever um loop e calcular cada elemento 'manualmente', como descrito acima.
Martyn Plummer ressalta que isso é implementado no JAGS, que eu perdi ao ler o manual. Do capítulo 5:
Funções escalares que recebem argumentos escalares são automaticamente vetorizadas. Eles também podem ser chamados quando os argumentos são matrizes com dimensões ou escalares conformes. Assim, por exemplo, o escalar c pode ser adicionado à matriz A usando
B <- A + c
em vez da forma mais detalhada
D <- dim(A)
for (i in 1:D[1])
for (j in 1:D[2]) {
B[i,j] <- A[i,j] + c
}
}
Respostas:
Diferentemente do JAGS, o WinBUGS e o OpenBUGS não fazem essa forma de vetorização; você precisa escrever um loop e calcular cada elemento 'manualmente', como descrito acima.
fonte
Martyn Plummer ressalta que isso é implementado no JAGS, que eu perdi ao ler o manual. Do capítulo 5:
fonte
Para fazer a multiplicação por elementos, basta fazer um loop for nessas linguagens e pronto! Eu usei para loops no WinBUGS sem problemas.
fonte
Aliás, a multiplicação por elementos de dois vetores de comprimento igual é chamada de produto Hadamard (também conhecido como produto de Schur).
fonte