Vector 如何在OpenBUGS中减去两个向量

Vector 如何在OpenBUGS中减去两个向量,vector,subtraction,statistics,winbugs,Vector,Subtraction,Statistics,Winbugs,我很难在OpenBUGS模型中减去两个向量。下面代码的最后一行不断给出错误“预期右括号错误”: 模型{ for(1:N中的i){ 对于(1:q中的j){ vv[i,j]~dnorm(vz[i,j],tau.eta[j]) } vz[i,1:q]~dmnorm(media.z[i,],K.delta[,])) 对于(1:q中的j){ mean.z[i,j]之所以出现“多重定义”错误,是因为temp[k]在i上的一个循环和j上的另一个循环中被反复定义-您只能定义它一次。要避免这种情况,请使用i和j下

我很难在OpenBUGS模型中减去两个向量。下面代码的最后一行不断给出错误“预期右括号错误”:

模型{
for(1:N中的i){
对于(1:q中的j){
vv[i,j]~dnorm(vz[i,j],tau.eta[j])
}
vz[i,1:q]~dmnorm(media.z[i,],K.delta[,]))
对于(1:q中的j){
mean.z[i,j]之所以出现“多重定义”错误,是因为temp[k]在i上的一个循环和j上的另一个循环中被反复定义-您只能定义它一次。要避免这种情况,请使用i和j下标,如

for(k in 1:p) { temp[k,i,j] <- ve[k,i] - ve[k,j] } 
K[i,j+1] <- sum(temp[,i,j])

for(k in 1:p){temp[k,i,j]真的很抱歉。我刚刚意识到我应该搜索“WinBUGS”也是。虽然我还没有解决这个问题,但我发现这篇文章更接近我的问题:谢谢你,克里斯。这非常有用。它现在编译并运行。这是一个非线性回归模型,我想用输入向量(ve)实现高斯核.这就是我需要减去它们的原因。我把'k'索引作为第三个索引,它也作为
temp[I,j,k]工作。这只是一个更新,让大家知道这个答案非常有效。我检查了结果,结果与预期一致。
for(k in 1:p) { temp [k] <- ve[k,i] - ve[k,j] }
K[i,j+1] <- sum(temp[])
for(k in 1:p) { temp[k,i,j] <- ve[k,i] - ve[k,j] } 
K[i,j+1] <- sum(temp[,i,j])