我有一个c(32, 32)
数组的数据,其网格分辨率为0.2 x 0.2。我想将分辨率0.4降低0.4格网分辨率,这将是c(16, 16)
阵列,再次0.8由0.8网格分辨率变为c(8, 8)
数组。
我仅为第一个c(16, 16)
数组开发以下脚本,但它只添加对角线项
a=c(32,32)
# define array
ra <- array(NA, c(16, 16))
n=0
k=0
for ( i in seq(1,32,2)) {
for (j in seq(1,32,2)){
ra[n,k]=sum(a[i:(i+1),j:(j+1)])
}
n=n+1
k=k+1
}
非常感谢我期待谁解决我的问题
答案 0 :(得分:0)
使用您的方法:
a <- array(runif(32 * 32), c(32, 32))
ra <- array(NA, c(16, 16))
n <- 1
for(i in seq(1, 32, 2)){
k <- 1
for(j in seq(1, 32, 2)){
ra[n, k] <- sum(a[i:(i+1), j:(j+1)])
k <- k + 1
}
n <- n + 1
}
当然还有更优雅的选择。