6

2 変数の関数を作成し、2D 配列を指定すると、補間された値を返すにはどうすればよいですか?

私はN x M配列を持っていAます。それを補間して、どうにかしてそのサーフェスの関数を取得し、整数ではない引数の値を選択できるようにする必要があります。(その補間を2変数の関数として使用する必要があります)

例えば:

A[N,M] //my array
// here is the method I'm looking for. Returns function interpolatedA
interpolatedA(3.14,344.1) //That function returns interpolated value
4

4 に答える 4

4

通常のグリッド上のデータには、interp2を使用します。データが分散している場合は、griddataを使用してください。これらの呼び出しの簡略化されたラッパーとして無名関数を作成できます。

M = 10;
N = 5;
A = rand(M,N);
interpolatedA = @(y,x) interp2(1:N,1:M,A,x,y);
%interpolatedA = @(y,x) griddata(1:N,1:M,A,x,y); % alternative
interpolatedA(3.3,8.2)

ans =
      0.53955
于 2013-05-02T20:03:58.010 に答える
0

interp2関数を見たことがありますか?

MatLab のドキュメントから:

ZI = interp2(X,Y,Z,XI,YI)行列、、および で指定された 2 次元関数内の補間によって決定されるおよびZIの要素に対応する要素を含む行列を返します。単調で、 によって生成されたかのように同じ形式 (「格子縞」) である必要があります。行列を作成し、データが与えられるポイントを指定します。範囲外の値はs として返されます。XIYIXYZXYmeshgridXYZNaN

于 2013-05-02T20:03:35.837 に答える
0

spline()次のようなコマンドを使用します。

% A contains N rows and 2 columns
pp = spline(A(:,1), A(:,2));
ppval(pp,3.44)

ans =

    0.4454
于 2013-05-02T20:37:42.080 に答える