MATLAB Function Reference | ![]() ![]() |
表示
ZI = interp2(X,Y,Z,XI,YI)
ZI = interp2(Z,XI,YI)
ZI = interp2(Z,ntimes)
ZI = interp2(X,Y,Z,XI,YI,method
)
詳細
ZI = interp2(X,Y,Z,XI,YI)
は、XI
とYI
の要素に対応する要素を含み、X
,Y
, Z
で指定される2次元関数を使って、補間した行列ZI
を出力します。X
と Y
は、単調増加または単調減少で、関数meshgrid
で作成されるような同じフォーマット("格子形")をもたなくてはいけません。行列X
と Y
は、データ Z
が与えられる点を指定します。範囲外の値は、NaN
として出力されます。
XI
と YI
が行列の場合、interp2
は、点 (XI(i,j),YI(i,j))
に対応する Z
の値を出力します。代わりに、行ベクトルxi
や列ベクトルyi
として渡すことができます。この場合、interp2
は、これらのベクトルをユーザが meshgrid(xi,yi)
を実行したかのように解釈します。
ZI = interp2(Z,XI,YI)
は、[m,n] = size(Z)
に対して、X = 1:n
と Y = 1:m
であると仮定します。
ZI = interp2(Z,ntimes)
は、再帰的に、ntimes
回、要素間の補間を繰り返すことにより、Z
を拡張します。interp2(Z)
は、interp2(Z,1)
と同じです。
ZI = interp2(X,Y,Z,XI,YI,
は、つぎの補間法を指定します。method
)
'linear'
線形補間(デフォルト)'nearest'
最近傍点による補間'spline'
キュービックスプライン補間'cubic'
キュービック補間 すべての補間法で、X
と Y
は単調関数でなくてはいけません。X
と Y
は、meshgrid
により作成されるものと同じフォーマット("格子形") をもちます。可変間隔の変数は、補間の前に X
、Y
、XI
、YI
の値を等間隔の領域に写像して取り扱われます。X
と Y
が等間隔で、単調増加であるとき、より速い補間を行うために、'
*linear'
、'
*cubic'
、'
*spline'
,*nearest'
を使ってください。
注意
interp2
は、データ点間の補間を行います。中間点のデータに基づいて、2次元関数 f(x,y) の値を求めます。
補間は、テーブルルックアップと同じ演算を行います。テーブルルックアップの用語で説明すると、テーブルは tab
=
[NaN,Y;
X,Z]
で、interp2
は Y
の YI
、および、Xの XI
の要素を調べ、その位置に基づいて、Z
の要素内で補間された値 ZI
を出力します。
例題
peaks
関数を細かいグリッド上に補間したの結果をプロットします。
[X,Y] = meshgrid(-3:.25:3); Z = peaks(X,Y); [XI,YI] = meshgrid(-3:.125:3); ZI = interp2(X,Y,Z,XI,YI); mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15) hold off axis([-3 3 -3 3 -5 20])![]()
years = 1950:10:1990; service = 10:10:30; wage = [150.697 199.592 187.625 179.323 195.072 250.287 203.212 179.092 322.767 226.505 153.706 426.730 249.633 120.281 598.243];
勤続15年の従業員が1975年に得た賃金を、補間することで求められます。
w = interp2(service,years,wage,15,1975) w = 190.6287
参考
griddata
, interp1
, interp3
, interpn
, meshgrid
![]() | interp1 | interp3 | ![]() |