【问题标题】:Loop to through matrix循环到通过矩阵
【发布时间】:2018-05-29 07:50:37
【问题描述】:

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

我想从矩阵中得到的数据集是

S.no 平均标准偏差 峰度偏度 1 2 . . . . 1024

我陷入了循环和检索值以计算统计信息的过程中。

【问题讨论】:

标签: r


【解决方案1】:

m 是您的矩阵。 yourMatrixFunction 是一个你需要定义的函数,它在单个 8x8-matrix 上工作并获得你想要的。

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多