1

第一次来这里的用户。我正在将矩阵从包 spatstat 转换为 im 对象。但是,矩阵 mat[1,1] 的左上角值写入图像的左下角,例如 im 函数从上到下读取矩阵的行,但从底部开始将它们写入 im 中。试图以相反的顺序将 im() 的 yrow 参数指定为 seq() 但结果仍然相同。建议如何解决这个问题?

    require(spatstat)

    mat <- matrix(seq(1,20, by=1), nrow=4, ncol=5)
    print(mat)
    im <- im(mat, xcol = seq(1,5), yrow = seq(4,1))
    plot(im, axes = T)
4

1 回答 1

0

有两种方法可以解决这个问题。在来自 github 的最新开发版本的 spatstat 中,您可以在不同的布局之间进行转换。详情请参阅help(transmat)。您提供的布局称为“欧洲”,用于 spatstat 的布局称为“spatstat”,因此您可以执行以下操作:

require(spatstat)
mat <- matrix(seq(1,20, by=1), nrow=4, ncol=5)
m <- transmat(mat, from = 'European', to = 'spatstat')
i <- im(m)
plot(i, axes = TRUE)

如果您没有 spatstat 的开发版本,您可以简单地执行以下操作:

require(spatstat)
mat <- matrix(seq(1,20, by=1), nrow=4, ncol=5)
m <- mat[4:1,]
i <- im(m)
plot(i, axes = TRUE)
于 2015-03-17T20:09:56.827 回答