Rで直線的に補間しようとしています MATLABの擬似コードはu = interp1(u, linspace(1, numel(u), numel(u)-1));
です。この点は、点がドメイン外にある場合は外挿してNaNを返します(デフォルトはhere)。R interp1をMATLABと同様に使用するには?
approx rule=1
ので、私はちょうどunsuccessufullyy <- x
なinterp1(x, y, xi, method = "linear")
その最小限のコードを聞かせて、私はMATLABで必要とされていないものを二
interp1
パラメータについて確認していないMATLABの擬似コード
に相当します例(実際のものは> 500 k点を持っているので線形が働く)とその出力は上に
List of 2
$ : num [1:3] 1 2 3
$ : num [1:2] 1 2
num [1:2] 0 1
Error in interp1(x, y, xi, method = "linear") :
Points 'xi' outside of range of argument 'x'.
Execution halted
library("pracma") # http://finzi.psych.upenn.edu/library/pracma/html/interp1.html
files <- vector("list", 2)
files[[1]] <- c(1,2,3)
files[[2]] <- c(1,2)
str(files)
# Wanted, MATLAB: u = interp1(u, linspace(1, numel(u), numel(u)-1));
xi <- seq(0,1, len = length(files[[1]]) - 1)
x <- files[[1]]
y <- files[[1]]
str(xi)
files[[1]] <- interp1(x, y, xi, method = "linear")
str(files)
私はスレッドusing interp1 in R for matrixを知っていますが、私はマトリックスを持っていません。
入力:c(1,2,3)
予想される出力:[1:2]のデータ構造
R:3.3.1
OS:Debianの8.5
あなたは '?approx'を試しましたか? – baptiste
@baptisteはい、最初に試しましたが、MATLAB擬似コードにもっとも近いところで発音するため、 'interp1'に戻りました。 –
MATLABはどのように外挿するのですか? '?approx'の' rule'の説明は、 'rule = 2'を設定すると、最も近いデータ極値で値を取得しますが、最も近い2つの点から直線的に外挿するような好きなことをしたい場合、 ... –