Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 二维数组中唯一相邻对的乘积求和_R - Fatal编程技术网

R 二维数组中唯一相邻对的乘积求和

R 二维数组中唯一相邻对的乘积求和,r,R,我的代码的第一部分生成一个20 x 20的矩阵,随机填充1和-1个元素。据我所知,这个部件工作得很好 接下来我要做的是找到所有唯一相邻元素对的乘积,并将它们相加。然后这个数字应该乘以'D'得到一个最终值。理论上,结果应该在0到800D之间 到目前为止,我得到的是一个函数,它首先创建一个新的22 x 22矩阵,这是原始矩阵,第一行重复为第22行,第20行也成为新的第1行。对第1列和第20列也执行相同的操作 当时的想法是,原始矩阵第20列中的数据将与第1列中的数据相邻,因此原始矩阵中的每个元素将有4

我的代码的第一部分生成一个20 x 20的矩阵,随机填充1和-1个元素。据我所知,这个部件工作得很好

接下来我要做的是找到所有唯一相邻元素对的乘积,并将它们相加。然后这个数字应该乘以'D'得到一个最终值。理论上,结果应该在0到800D之间

到目前为止,我得到的是一个函数,它首先创建一个新的22 x 22矩阵,这是原始矩阵,第一行重复为第22行,第20行也成为新的第1行。对第1列和第20列也执行相同的操作

当时的想法是,原始矩阵第20列中的数据将与第1列中的数据相邻,因此原始矩阵中的每个元素将有4个相邻元素

n <- 20

spin <- sample(c(-1, 1), n^2, replace = TRUE)

S <- array(spin, dim = c(n, n))

energy <- function(S, D = 1){

S1 <- S

S1 <- rbind(S[n,], S1, S[1,])

S1 <- cbind(S1[,n], S1, S1[,1])

n你忘了把上一笔加进去:
E太好了,谢谢!
  for(i in 2:(n+1)) {
    for(j in 2:(n+1)) {
      E <- D * (sum((S1[i, j] * S1[(i-1), j]), (S1[i, j] * S1[i, (j-1)]),  
             (S1[i, j] * S1[i, (j+1)]), (S1[i, j] * S1[(i+1), j])))
}
}
return(E)
}

energy(S)