2014-01-31 34 views
0

我有一个c(32, 32)数组,其数据为0.2,网格分辨率为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

使用你的方法:

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 
} 

当然有更多优雅的选择。

+0

这是完美的谢谢 – tokicha