ドキュメンテーション

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

griddedInterpolant クラス

グリッド データの内挿

    メモ:    griddedInterpolant の動作は変更されました。すべての内挿法が既定で外挿をサポートするようになりました。F.Method'linear''cubic' または 'nearest' の場合に R2013a より前の動作を維持するには、F.ExtrapolationMethod'none' に設定します。R2013a より前では、F.Method'linear''cubic' または 'nearest' に設定されている場合の評価は、領域の外側のクエリ点で NaN 値を返します。

説明

griddedInterpolant を使用して、1 次元、2 次元、3 次元、N 次元の「グリッド データ」集合に対して内挿を実行します。たとえば、一連の (x,y) の点と v の値を griddedInterpolant に渡すと、v = F(x, y) 形式の表面が返されます。この表面は常に、点の位置でサンプル値を通過します。この表面を任意のクエリ点 (xq,yq) で評価し、内挿された値 vq を生成できます。

griddedInterpolant を使用して、「内挿F を作成します。その後、次の構文のいずれかを使用して、特定の点で F を評価できます。

  • Vq = F(Xq) は、行列 Xq 内の一連のクエリ点で F を評価します。Xq 内の点は散在しており、Xq の各行は各クエリ点の座標を含みます。

  • Vq = F(xq1,xq2,...,xqn) はクエリ位置 xq1,xq2,...,xqn を指定します。これは、列ベクトルの長さ m で、m 個の点が n 次元空間に散在していることを示します。

  • Vq = F(Xq1,Xq2,...,Xqn) は、点の「フル グリッド」の定義と同じサイズの n n 次元配列 Xq1,Xq2,...,Xqn としてクエリ位置を指定します。

  • Vq = F({xgq1,xgq2,...,xgqn}) はクエリ位置を「グリッド ベクトル」として指定します。この構文は、クエリする点のグリッドが大きく、メモリを節約する場合に使用してください。

構築

F = griddedInterpolant(x,v) は、サンプル点のベクトル x と、対応する値 v から 1 次元の内挿を作成します。

F = griddedInterpolant(X1,X2,...,Xn,V) は、一連の n 次元配列 X1,X2,...,Xn として渡されたサンプル点の「フル グリッド」を使用して 2 次元、3 次元 または N 次元の内挿を作成します。配列 V は、X1,X2,...,Xn 内の点の位置に関連付けられたサンプル値を格納します。各配列 X1,X2,...,Xn は、V と同じサイズでなければなりません。

F = griddedInterpolant(V) は、既定のグリッドを使用して内挿を作成します。この構文を使用する場合、griddedInterpolant は、i 番目の次元で、間隔が 1、範囲が [1, size(V,i)] の点の集合としてグリッドを定義します。この構文は、点間の絶対距離を考慮せず、メモリを節約する場合に使用してください。

F = griddedInterpolant({xg1,xg2,...,xgn},V) は、n 点の「グリッド ベクトル」を指定して、サンプル点の n 次元グリッドを記述します。この構文は、特定のグリッドを使用し、メモリも節約する場合に使用してください。

F = griddedInterpolant(___,Method) は、内挿法を記述する 5 つの文字列のいずれかを指定します ('linear''nearest''pchip''cubic' または 'spline')。先頭 4 つのいずれかの構文では、最後の入力引数として Method を指定できます。

F = griddedInterpolant(___,Method,ExtrapolationMethod) は、内挿法と外挿法の両方を文字列として指定します。griddedInterpolant は、クエリ点がサンプル点の領域の外側になるときに ExtrapolationMethod を使用して値を推定します。先頭 4 つのいずれかの構文では、MethodExtrapolationMethod を最後の 2 つの入力引数として一緒に指定してください。

入力引数

x

サンプル点ベクトル。v と同じサイズの入力座標のベクトルとして指定します。

v

サンプル値ベクトル。x と同じサイズの入力値のベクトルとして指定します。

X1,X2,...,Xn

フル グリッド」形式のサンプル点。一連の n 次元配列として指定します。配列 X1,X2,...,Xn は、関数 ndgrid を使用して作成できます。これらの配列はすべて同じサイズであり、それぞれは V と同じサイズです。

{xg1,xg2,...,xgn}

グリッド ベクトル形式のサンプル点。グリッド ベクトルのセル配列として指定します。これらのベクトルは、V と同じサイズのグリッドを指定しなければなりません。つまり、size(V) = [length(xg1) length(xg2),...,length(xgn)] です。この形式は、グリッドが非常に大きい場合、メモリを節約するためにフル グリッドの代替として使用してください。

V

サンプル値。配列として指定します。V の要素は、サンプル点に対応する値です。V のサイズは、サンプル点のフル グリッドのサイズでなければなりません。

  • サンプル点を N 次元配列から成るフル グリッドとして指定する場合、V は次の 1 つと同じサイズでなければなりません。 X1,X2,...,Xn.

  • サンプル点をグリッド ベクトルとして指定する場合は、size(V) = [length(xg1) length(xg2) ... length(xgn)] です。

Method

内挿法。以下の表から文字列として指定します。

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

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

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

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

'pchip'区分的 3 次エルミート内挿多項式 (1 次元のみ)。クエリ点に内挿される値は、隣接するグリッド点の値を使用した区分的 3 次エルミート内挿多項式に基づいて決定されます。C1
  • 少なくとも 4 つの点が必要

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

'cubic'クエリ点に内挿される値は、個々の次元で隣接するグリッド点の値の 3 次内挿に基づいて決定されます。内挿は、3 次たたみ込みに基づいて決定されます。C1
  • グリッドが等間隔であることが必要。ただし、各次元の間隔が同じである必要はありません。

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

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

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

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

ExtrapolationMethod

外挿法。Method の選択肢のいずれかとして指定します ('linear''nearest''pchip''cubic' または 'spline')。さらに、'none' を指定できます。この場合、グリッドの領域の外側をクエリしようとすると NaN 値が返されます。

ExtrapolationMethod を省略した場合、既定値は、Method に指定した文字列です。MethodExtrapolationMethod の両方の引数を省略すると、両方とも既定で 'linear' に設定されます。

プロパティ

GridVectors

グリッド ベクトルを含むセル配列 {xg1,xg2,...,xgn}。これらのベクトルは、F.Values 内の値のグリッド点 (位置) を指定します。

Values

F.GridVectors 内のグリッド点に関連付けられた値の配列。

Method

データの内挿に使用される方法の名前を指定する文字列。Method は 5 つの文字列のいずれかです ('linear''nearest''pchip''cubic' または 'spline')。既定値は 'linear' です。

ExtrapolationMethod

データの外挿に使用される方法の名前を指定する文字列。ExtrapolationMethod は 6 つの文字列のいずれかです ('linear''nearest''pchip''cubic''spline' または 'none')。値 'none' は外挿が無効であることを示します。既定値は、F.Method の値です。

定義

内挿

クエリ位置で評価できる内挿関数。

グリッド データ

軸に沿って配置され、順序付けられた一連の点。

散布データ

各点間の相対的位置関係が構造的でない一連の点。

フル グリッド

一連の配列として表現されるグリッド。たとえば、ndgrid を使用してフル グリッドを作成できます。

グリッド ベクトル

ndgrid 形式のグリッドの簡潔な表現を提供する一連のベクトル。たとえば、[X,Y] = ndgrid(xg,yg) は、行列 XY にフル グリッドを返します。同じグリッドを、グリッド ベクトル xgyg を使用して表現できます。

コピーのセマンティクス

値。コピー操作に対する値クラスの影響については、MATLAB® ドキュメンテーションの「オブジェクトのコピー」を参照してください。

インデックス

F のプロパティのインデックスベースの編集はサポートされていません。代わりに、必要に応じて GridVectors 配列または Values 配列を完全に置き換えます。詳細は、『MATLAB 数学』ドキュメンテーションの「griddedInterpolant クラスを使用した内挿」を参照してください。

すべて展開する

より細かいグリッドの 2 次元内挿

粗くサンプリングされたデータを、0.5 間隔のフル グリッドを使って内挿します。

サンプル点を、フル グリッドとして、両方の次元に範囲 [1, 10] で定義します。

[X,Y] = ndgrid(1:10,1:10);

グリッド点で $f(x,y) = x^{2}+y^{2}$ をサンプリングします。

V = X.^2 + Y.^2;

3 次内挿を指定して内挿を作成します。

F = griddedInterpolant(X,Y,V,'cubic');

クエリ点のフル グリッドを 0.5 間隔で定義し、それらの点で内挿を評価します。次に、結果をプロットします。

[Xq,Yq] = ndgrid(1:0.5:10,1:0.5:10);
Vq = F(Xq,Yq);
mesh(Xq,Yq,Vq);

1 次元外挿

外挿法の 'pchip''nearest' を使用して、F の領域の外側で内挿をクエリした際の結果を比較します。

内挿を作成し、内挿法として 'pchip' を指定します。

x = [1 2 3 4 5];
v = [12 16 31 10 6];
F = griddedInterpolant(x,v,'pchip')
F = 

  griddedInterpolant with properties:

            GridVectors: {[1 2 3 4 5]}
                 Values: [12 16 31 10 6]
                 Method: 'pchip'
    ExtrapolationMethod: 'pchip'

内挿をクエリし、F の領域の外側の点を含めます。

xq = 0:0.1:6;
vq = F(xq);
figure
plot(x,v,'o',xq,vq,'-b');
legend ('v','vq')

最近傍外挿法を使用して、同じ点で再度、内挿をクエリします。

F.ExtrapolationMethod = 'nearest';
figure
vq = F(xq);
plot(x,v,'o',xq,vq,'-b');
legend ('v','vq')

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