循环到矩阵

时间:2018-05-29 07:50:38

标签: r

我有一个256 * 256的矩阵,我需要打破这个矩阵才能获得1024个块(256 * 256 /(8 * 8))。然后我需要计算平均值,标准偏差,峰度,每个块的标准偏差(1024个块)

我想从矩阵中获取的数据集是

S.no平均标准差Kurtosis Skewness 1 2 。 。 。 。 1024

我陷入循环并检索值以计算统计信息。

1 个答案:

答案 0 :(得分:1)

m是你的矩阵。 yourMatrixFunction是您需要定义的函数,它可以在单个8x8矩阵上运行并获取您想要的内容。

m <- matrix(1,nrow=256,ncol=256)

first <- seq(1,256,by=8)
last  <- rep(8,length(first)) %>% cumsum

pair  <- Map(function(...)cbind(...),first,last) %>% expand.grid(.,.)
first <- pair[[1]]
last  <- pair[[2]]

all_m <- Map(function(x,y) m[x[1]:x[2],y[1]:y[2]],x=first,y=last)

lapply(all_m,yourMatrixFunction)