Основная двумерная кубическая сплайн-аппроксимация в R - PullRequest
4 голосов
/ 23 декабря 2011

Что такое R-эквивалент простой кубической сплайн-интерполяции Matlab в 2D-пространстве, показанный здесь , то есть

n = 7;
x = rand(n,1);
y = rand(n,1);
plot(x,y,'.')
axis([0 1 0 1])
t = 1:n;
ts = 1:1/10:n;
xs = spline(t,x,ts);
ys = spline(t,y,ts);
hold on
plot(xs,ys,'r');
hold off

Я пробовал варианты в R, но, похоже, они требуют упорядочениявектора x, и копание в связанных вопросах не дало мне больше.Спасибо ...

1 Ответ

10 голосов
/ 23 декабря 2011

Возможно, это версия R:

n <- 7
x <- runif(n)
y <- runif(n)
t <- 1:n
ts <- seq(1, n, by = 1/10)
xs <- splinefun(t, x)(ts)
ys <- splinefun(t, y)(ts)

plot(x, y, xlim = c(0, 1), ylim = c(0, 1))
lines(xs, ys)

Обратите внимание, что я не уверен, полностью ли идентичны алгоритмы сплайна с matlab.

enter image description here

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