【发布时间】:2021-03-15 21:55:29
【问题描述】:
我正在尝试在 R 中模拟羊群行为。
这是代码
library(raster)
library(sp)
library(foreach)
K=100
sig=0.2
G=0.3
x <- raster(ncol=2000,nrow=2000)
values(x) <- sign(rnorm(4000000,mean=0,sd=0.3))
y <- raster(ncol=2000,nrow=2000)
values(y) <- sign(rnorm(4000000,mean=0,sd=0.3))
#plot(x)
ei <- rnorm(4000000)
j=0
while(j < 30) {
for(i in 1:4000000){
ad <- adjacent(x,cell=c(i))[,2]
y[i] <- sign(K*sum(x[ad])+sig*ei[i]+G)
}
x <- y
plot(x)
j = j+1
}
经典的循环方法太慢了。 如果我使用 foreach 循环而不是经典的 for 循环,它不会在每次迭代中更改 y 的值。
我根本无法修复它。 有人可以帮忙吗?
谢谢
【问题讨论】: