ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

interp2

meshgrid 形式の 2 次元グリッド データの内挿

今後のリリースでは、interp2 はサンプルとクエリのグリッドに対して行と列のベクトルの混在した組み合わせは受け入れません。詳細およびコードの更新の推奨事項については、「Functionality being removed or changed」を参照してください。

構文

  • Vq = interp2(X,Y,V,Xq,Yq)
  • Vq = interp2(V,Xq,Yq)
  • Vq = interp2(V,ntimes)
  • Vq = interp2(___,method)
  • Vq = interp2(___,method,extrapval)

説明

Vq = interp2(X,Y,V,Xq,Yq) は、線形内挿を使用して、特定のクエリ点における 2 変数をもつ関数の内挿値を返します。その結果は、関数の元のサンプリングを通過します。XY には、サンプル点の座標が含まれます。V には、各サンプル点の対応する関数値が含まれます。XqYq には、クエリ点の座標が含まれます。

Vq = interp2(V,Xq,Yq) は、サンプル点の既定のグリッドを想定します。既定のグリッド点は、四角形領域 X=1:nY=1:m をカバーします。ここで [m,n] = size(V) です。この構文は、点同士の絶対距離を考慮せず、メモリを節約する場合に使用します。

Vq = interp2(V,ntimes) は、サンプル値と、各次元の隣接するサンプル値間に挿入される ntimes 内挿値を返します。

Vq = interp2(___,method) は、前のどの構文によっても渡すことができる、オプションの後続入力引数を指定します。method 引数は、代替内挿法を指定する次の文字列、'linear''nearest''cubic' または 'spline' になります。既定の手法は、'linear' です。

Vq = interp2(___,method,extrapval) は、サンプル点の領域の外側に位置するすべてのクエリに割り当てられたスカラー値 extrapval も指定します。extrapval 引数を省略すると、interp2 サンプル点の領域外のクエリに対し NaN 値を返します。

すべて展開する

既定の方法を使用した、グリッドへの内挿

関数 peaks を粗くサンプリングします。

[X,Y] = meshgrid(-3:3);
V = peaks(X,Y);

粗いサンプリングをプロットします。

figure
surf(X,Y,V)
title('Original Sampling');

0.25 の間隔でクエリ グリッドを作成します。

[Xq,Yq] = meshgrid(-3:0.25:3);

クエリ点で内挿します。

Vq = interp2(X,Y,V,Xq,Yq);

結果をプロットします。

figure
surf(Xq,Yq,Vq);
title('Linear Interpolation Using Finer Grid');

3 次法を使用した、グリッドへの内挿

関数 peaks を粗くサンプリングします。

[X,Y] = meshgrid(-3:3);
V = peaks(7);

粗いサンプリングをプロットします。

figure
surf(X,Y,V)
title('Original Sampling');

0.25 の間隔でクエリ グリッドを作成します。

[Xq,Yq] = meshgrid(-3:0.25:3);

クエリ点で内挿し、3 次内挿を指定します。

Vq = interp2(X,Y,V,Xq,Yq,'cubic');

結果をプロットします。

figure
surf(Xq,Yq,Vq);
title('Cubic Interpolation Over Finer Grid');

X と Y の領域の外側での評価

両方の次元で、範囲 [-2, 2] で関数を粗くサンプリングします。

[X,Y] = meshgrid(-2:0.75:2);
R = sqrt(X.^2 + Y.^2)+ eps;
V = sin(R)./(R);

粗いサンプリングをプロットします。

figure
surf(X,Y,V)
xlim([-4 4]);
ylim([-4 4]);
title('Original Sampling');

XY の領域を越えるクエリ グリッドを作成します。

[Xq,Yq] = meshgrid(-3:0.2:3);

X と Y の領域内で 3 次内挿を実行し、範囲外に位置するすべてのクエリに 0 を割り当てます。

Vq = interp2(X,Y,V,Xq,Yq,'cubic',0);

結果をプロットします。

figure
surf(Xq,Yq,Vq);
title('Cubic Interpolation with Vq=0 Outside Domain of X and Y');

入力引数

すべて展開する

X,Y - サンプル グリッド点行列 | ベクトル

サンプル グリッド点。実数行列またはベクトルとして指定します。

例: [X,Y] = meshgrid(1:30,-10:10)

データ型:single | double

V - サンプル値行列

サンプル値。実数行列または複素数行列として指定します。V のサイズ要件は、XY のサイズによって異なります。

  • XY が (meshgrid 形式の) フル グリッドを表す行列の場合、VX および Y と同じサイズでなければなりません。

  • XY がグリッド ベクトルの場合、V は、length(Y) 行と length(X) 列を含む行列でなければなりません。

例: rand(10,10)

データ型:single | double
複素数のサポート: あり

Xq,Yq - クエリ点スカラー | ベクトル | 行列 | 配列

クエリ点。実数のスカラー、ベクトル、行列または配列として指定します。

  • XqYq がスカラーの場合、単一のクエリ点の座標になります。

  • XqYq が異なる向きのベクトルの場合、XqYq はグリッド ベクトルとして扱われます。

  • XqYq が、サイズと向きが同じベクトルの場合、XqYq は 2 次元空間の散布点として扱われます。

  • XqYq が行列の場合、これらはクエリ点 (meshgrid 形式) または散布点のフル グリッドを表します。

  • XqYq が N 次元配列の場合、2 次元空間内の散布点を表します。

例: [Xq,Yq] = meshgrid((1:0.1:10),(-5:0.1:0))

データ型:single | double

ntimes - 調整係数実数の非負の整数スカラー

調整係数。実数の非負のスカラー整数として指定します。この値は、各次元で元のサンプル値間に挿入される内挿値の数を指定します。ntimes0 の場合、VqV と同じになります。次の図は、ntimes=3 の 9 つのサンプル値 (黒) 間での内挿値 (赤) の配置を示しています。

例: 3

データ型:single | double

method - 内挿法'linear' (既定の設定) | 'nearest' | 'cubic' | 'spline'

内挿法。以下の表の文字列により指定します。

メソッド説明連続性コメント
'linear'クエリ点に内挿される値は、対応する各次元における、隣接するグリッド点の値を使用した線形内挿に基づいて決定されます。これは既定の内挿法です。C0
  • 各次元に少なくとも 2 つのグリッド点が必要

  • 'nearest' よりも多いメモリが必要

'nearest'クエリ点に内挿される値は、最も近いサンプル グリッド点の値になります。 不連続
  • 各次元に 2 つのグリッド点が必要

  • 中程度のメモリで最速の計算が必要

'cubic'クエリ点に内挿される値は、対応する各次元における、隣接するグリッド点の値を使用した 3 次内挿に基づいて決定されます。内挿は、3 次たたみ込みに基づいて決定されます。C1
  • 各次元でグリッドが等間隔でなければならない。ただし、すべての次元で間隔が同じである必要はありません。

  • 各次元に少なくとも 4 つの点が必要

  • 'linear' よりも多くのメモリと長い計算時間が必要

'spline'クエリ点に内挿される値は、対応する各次元における、隣接するグリッド点の値を使用した 3 次内挿に基づいて決定されます。内挿は、3 次スプラインに基づいて決定されます。C2
  • 各次元に 4 つの点が必要

  • 'cubic' よりも多くのメモリと長い計算時間が必要

extrapval - XY の領域の外側の関数値スカラー

XY の領域の外側の関数値。実数または複素数のスカラーとして指定します。interp2 は、XY の領域の外側のすべての点に対して、この定数値を返します。

例: 5

例: 5+1i

データ型:single | double
複素数のサポート: あり

出力引数

すべて展開する

Vq - 内挿値スカラー | ベクトル | 行列

内挿値。実数または複素数のスカラー、ベクトルまたは行列として返されます。Vq のサイズと形状は、使用する構文、場合によっては入力引数のサイズと値によって異なることがあります。

構文特殊な条件Vq のサイズ
interp2(X,Y,V,Xq,Yq)
interp2(V,Xq,Yq)
と、method または extrapval を含む上記構文のバリエーション
XqYq はスカラースカラーXqYq をスカラーとして渡した場合は size(Vq) = [1 1]
上記に同じXqYq は、サイズと向きが同じベクトルXq および Yq と同じサイズと向きをもつベクトルsize(Xq) = [100 1]
かつ size(Yq) = [100 1] の場合、
size(Vq) = [100 1]
上記に同じXqYq は、向きが混在するベクトル行の数が length(Yq) で、列の数が length(Xq) の行列size(Xq) = [1 100]
かつ size(Yq) = [50 1] の場合、
size(Vq) = [50 100]
上記に同じXqYq は、同じサイズの行列または配列Xq および Yq と同じサイズの行列または配列size(Xq) = [50 25]
かつ size(Yq) = [50 25] の場合、
size(Vq) = [50 25]
interp2(V,ntimes)
と、method または extrapval を含む上記構文のバリエーション
なし

行の数が
2^ntimes * (size(V,1)-1)+1

列の数が
2^ntimes * (size(V,2)-1)+1 の行列

size(V) = [10 20]
かつ ntimes = 2 の場合、
size(Vq) = [37 77]

詳細

すべて展開する

厳密に単調

反転せずに、常に増加または減少する一連の値。たとえば、シーケンス a = [2 4 6 8] は厳密に単調で増加します。シーケンス b = [2 4 4 6 8] は、b(2)b(3) の間の値に変化がないため、厳密に単調ではありません。シーケンス c = [2 4 6 8 6] には c(4)c(5) の間に反転が含まれているため、単調ではありません。

(meshgrid 形式の) フル グリッド

interp2 の場合、フル グリッドは、要素が四角形領域の点のグリッドを表す行列のペアです。1 つの行列には x 座標、もう 1 つの行列には y 座標が含まれます。x 行列の値は、厳密に単調で、行に沿って増加します。列に沿った値は定数です。y 行列の値は厳密に単調で、列に沿って増加します。行に沿った値は定数です。関数 meshgrid を使用して、interp2 に渡すことができるフル グリッドを作成します。

たとえば、次のコードは –1 ≤ x ≤ 3 かつ 1 ≤ y ≤ 4 の領域に対するフル グリッドを作成します。

[X,Y] = meshgrid(-1:3,(1:4))
X =

    -1     0     1     2     3
    -1     0     1     2     3
    -1     0     1     2     3
    -1     0     1     2     3

Y =

     1     1     1     1     1
     2     2     2     2     2
     3     3     3     3     3
     4     4     4     4     4

グリッド ベクトル

interp2 の場合、グリッド ベクトルは、グリッド内の x 座標と y 座標を定義する、向きが混在するベクトルのペアから構成されます。1 つのベクトルは行ベクトル、もう 1 つのベクトルは列ベクトルです。

たとえば、次のコードは –1 ≤ x ≤ 3 かつ 1 ≤ y ≤ 4 の領域を指定するグリッド ベクトルを作成します。

x = -1:3;
y = (1:4)';

散布点

interp2 の場合、散布点は、2 次元空間に散在する点の集合を定義する配列のペアから構成されます。1 つの配列には x 座標、もう 1 つの配列には y 座標が含まれます。

たとえば、次のコードは (2,7)、(5,3)、(4,1) および (10,9) の点を指定します。

x = [2 5; 4 10];
y = [7 3; 1 9];

参考

| | | | |

この情報は役に立ちましたか?