MATLAB Function Reference | ![]() ![]() |
表示
VI = interp3(X,Y,Z,V,XI,YI,ZI) VI = interp3(V,XI,YI,ZI) VI = interp3(V,ntimes) VI = interp3(...,method)
詳細
VI = interp3(X,Y,Z,V,XI,YI,ZI)
は、内挿を使って、配列 XI
、YI
、ZI
内の点で、3次元関数 V
の値 VI
を検出します。XI
、YI
、ZI
は、同じサイズの配列、または、ベクトルでなければなりません。ベクトル引数が、同じサイズでなかったり、方向がバラバラの場合、関数 meshgrid
を使って、配列 Y1
、Y2
、Y3
を作成します。配列 X
、Y
、Z
は、データ V
が与えられる点を指定します。範囲外の点は、NaN
として出力します。
VI = interp3(V,XI,YI,ZI)
は、X=1:N
、Y=1:M
、Z=1:P
を仮定しています。ここで、[M,N,P] = size(V)
です。
VI = interp3(V,ntimes)
は、再帰的に、ntimes
回、各要素間の内挿を行うことにより、V
を拡張します。コマンド interp3(V)
は、interp3(V,1)
と同じです。
VI = interp3(...,method)
は、つぎの手法を設定します。
'linear' |
線形内挿(デフォルト) |
'cubic' |
キュービック内挿 |
'spline' |
キュービックスプライン内挿 |
'nearest' |
最近傍内挿 |
議論
すべての補間法は、X
、Y
、Z
が単調関数で、meshgrid
を使って、作成されたようなフォーマットをしている必要があります。X
、Y
、Z
は、不等間隔でも構いません。X
、Y
、Z
が等間隔で、単調な場合、高速な内挿を実現するには、'*linear
'、'*cubic
'、'*nearest
' のいずれかを使用してください。
例題
flow
の荒い近似を作成し、内挿により、細かいメッシュの結果を作成します。
[x,y,z,v] = flow(10); [xi,yi,zi] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3); vi = interp3(x,y,z,v,xi,yi,zi); % V is 31-by-41-by-27 slice(xi,yi,zi,vi,[6 9.5],2,[-2 .2]), shading flat
参考
interp1
, interp2
, interpn
, meshgrid
![]() | interp2 | interpft | ![]() |