2014-01-31 57 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