如何将到相邻单元格的距离向量转换为距离的中心矩阵

问题描述

我想将距离矩阵恢复到代表矩阵中心的焦点 my_point在这一点上我可以做:

        library(raster)
        set.seed(123)
        m168 <- matrix(1,nrow=13,ncol=13)
        m168[7,7] <- 0
        r <- raster(ncol=1000,nrow=1000)
        values(r) <- round(runif(ncell(r)) * 5)
        REP_UTM <-  '+proj=utm +zone=19 +ellps=GRS80 +datum=NAD83 +units=m +no_defs'
        r <- projectRaster(r,crs = REP_UTM)
        my_point <- c(500000,560000)
        cells_a <- cellFromXY(r,my_point)
        xy_point <- xyFromCell(r,cells_a)
        a<- adjacent(r,cells=cells_a,directions=m168,pairs=FALSE)
        xy_a <- xyFromCell(r,a) 
        dist_to_a <- pointdistance(xy_a,my_point,lonlat=FALSE)

但我无法将向量 dist_to_a 转换为 13*13 方阵。有没有办法做到这一点?

解决方法

@jay.sf 非常感谢你,同时我找到了一个解决方案:

dist_to_a <- append(dist_to_a,84) 
dist_to_a <- matrix(dist_to_a,nrow=13,ncol=13)