2011-12-23 29 views
4

什麼是R相當於簡單的Matlab的三次樣條在二維空間here顯示插值,即基本二維三次樣條在R管件

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向量的排序以及挖掘相關問題並沒有讓我更進一步。謝謝...

回答

10

也許這爲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

+0

非常好,謝謝! – Christian 2011-12-23 09:46:45