Преобразование матрицы в объект im из пакета spatstat - строки в обратном порядке

Первый раз пользователь здесь. Я конвертирую матрицу в объект im из пакета spatstat. Тем не менее, верхнее левое значение из матрицы mat[1,1] записывается в нижнем левом углу изображения, например, функция im считывает строки матрицы сверху вниз, но записывает их в im, начиная снизу. Попытка указать аргумент yrow функции im() для 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)

1 ответ

Решение

Есть два способа обойти это. В последней версии разработки spatstat от github вы можете трансформироваться между различными макетами. Увидеть 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)
Другие вопросы по тегам