簡體   English   中英

R中的樣條插值

[英]Spline Interpolation in R

我有一些數據

h = c[157 144  80 106 124  46 207 188 190 208 143 170 162 178 155 163 162 149 135 160 149 147 133 146 126 120 151  74 122 145 160 155 173 126 172  93]

然后我用 diff 函數得到局部最大值

max = [1  5  7 10 12 14 16 20 24 27 31 33 35 36]

我有簡單的 matlab 代碼來查找樣條插值

maxenv = spline(max,h(max),1:N);

此代碼將顯示結果

maxenv = 157    86.5643152828762    67.5352696350679    84.9885891697257    124 169.645228239041    207 224.396380746179    223.191793341491    208 185.421032390413    170 172.173624690130    178 172.759468849065    163 158.147870987344    157.874968589889    159.414581897490    160 157.622863516083    153.308219179638    148.839465253375    146 146.051320982064    148.167322961480    151 153.474200222188    155.606188003845    157.685081783579    160 163.653263154551    173 186.027639098700    172 93

現在我正在嘗試使用 R 但遇到了一些錯誤

maxenv <- spline(max, h(max), seq(N))

然后報錯

xy.coords(x, y) 中的錯誤:“x”和“y”長度不同

你的代碼和問題真的不清楚,所以我不能 100% 確定這就是你要找的:

# vector of values

h <- c(157, 144, 80, 106, 124, 46, 207, 188, 190, 208, 143, 170, 162, 178, 155, 
       163, 162, 149, 135, 160, 149, 147, 133, 146, 126, 120, 151, 74, 122, 145,
       160, 155, 173, 126, 172, 93)

# local maxima
lmax <- h[c(1, which(diff(sign(diff(h)))==-2)+1, length(h))]

# spline calculation
spl <- spline(1:length(lmax), lmax)

# visual inspection
plot(spl)
lines(spl)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM