Dalam R, c (3,1,0) * c (2,0,1) == c (6,0,0). Ini bukan produk titik dan bukan produk lintas. Pertama, apa nama untuk produk ini, dan kedua, apakah itu berfungsi di WinBUGS, OpenBUGS, dan / atau JAGS?
Dalam R, c (3,1,0) * c (2,0,1) == c (6,0,0). Ini bukan produk titik dan bukan produk lintas. Pertama, apa nama untuk produk ini, dan kedua, apakah itu berfungsi di WinBUGS, OpenBUGS, dan / atau JAGS?
Jawaban:
Martyn Plummer menunjukkan bahwa ini diimplementasikan dalam JAGS, yang saya lewatkan saat membaca manual. Dari Ch 5:
Fungsi skalar yang mengambil argumen skalar secara otomatis di-vektor-kan. Mereka juga bisa dipanggil ketika argumen array dengan dimensi yang sesuai, atau skalar. Jadi, misalnya, skalar dapat ditambahkan ke matriks menggunakan
B <- A + c
bukannya bentuk yang lebih verbose
D <- dim(A) for (i in 1:D[1]) for (j in 1:D[2]) { B[i,j] <- A[i,j] + c } }
Untuk melakukan perkalian elemen-bijaksana, Anda bisa membuat for for loop dalam bahasa tersebut dan hanya itu! Saya telah menggunakan loop di WinBUGS tanpa masalah.
Kebetulan, perkalian elemen-bijaksana dari dua vektor dengan panjang yang sama disebut produk Hadamard (alias produk Schur).