R-interp: Одинаковые координаты ввода и вывода (x, y, xo, yo), несколько векторов значений данных (z). Могу ли я пропустить некоторые шаги? - PullRequest
1 голос
/ 02 апреля 2019

Мне нужно выполнить несколько двумерных линейных интерполяций от одних и тех же входных координат (x, y) к одним и тем же выходным координатам (xo, yo).Только значения данных (z) изменяются каждый раз (z1, z2, z3, ...).

Я использовал пакетное взаимодействие на R. До сих пор я вызывал команду "interp" несколько раз.Вот так:

# create data 
y <- rep(1:5,5)      # input coords
x <- rep(1:5,each=5)
z1 <- 1:25           # data
z2 <- 25:1
xo <- c(1.1,2.2,3.3) # output coords
yo <- c(2.2,3.3,4.4)

# interpolate 
library(interp)
z1.int <- interp(x,y,z1,xo,yo,output="points")[[3]]; z1.int
z2.int <- interp(x,y,z2,xo,yo,output="points")[[3]]; z2.int

# plot (optional)
layout(t(1:2))
plot(x,y,type='n'); text(x,y,z1,col='red'); text(xo,yo,z1.int)
plot(x,y,type='n'); text(x,y,z2,col='red'); text(xo,yo,z2.int)

Однако я подозреваю, что есть способ значительно ускорить мои вычисления.Процедура интерполяции состоит из нескольких этапов.Я думаю, что некоторые из них нужно выполнить только один раз, а затем использовать их результаты несколько раз для нескольких векторов данных.

Есть ли способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...