ドキュメンテーション

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

griddata

    メモ:   Qhull 固有のオプションはサポートされていません。コードに griddata を渡すコードのすべてのインスタンスから OPTIONS 引数を削除します。

    将来のソフトウェア リリースでは、次の構文は削除されます。

    [Xq,Yq,Vq] = griddata(x,y,v,xq,yq)
    [Xq,Yq,Vq] = griddata(x,y,v,xq,yq, method)
    さらに将来のリリースでは、griddata は方向が異なる入力ベクトルは一切受け付けなくなります。クエリ点のグリッドを指定するには、griddata を呼び出す前に、ndgrid または meshgrid でフル グリッドを作成します。

構文

vq = griddata(x,y,v,xq,yq)
vq = griddata(x,y,z,v,xq,yq,zq)
vq = griddata(___,method)

説明

vq = griddata(x,y,v,xq,yq) は、式 v = f(x,y) の表面を、ベクトル (x,y,v) 内の散布データに近似します。関数 griddata は、(xq,yq) によって指定されたクエリ点において表面を内挿し、内挿された値 vq を返します。表面は常に、x および y によって定義されたデータ点を通過します。

vq = griddata(x,y,z,v,xq,yq,zq) は、式 v = f(x,y,z) の超平面を近似します。

vq = griddata(___,method) は、前述の構文の入力引数のいずれかを使用し、指定した内挿法を使用して vq を計算します。

入力引数

x

サンプル点の x- 座標を指定するベクトル。

y

サンプル点の y- 座標を指定するベクトル。

z

サンプル点の z- 座標を指定するベクトル。

v

サンプル座標 x, y (および 3 次元内挿の z) に対応したサンプル値のベクトル。

xq

評価対象のクエリ点の x- 座標を指定するベクトルまたは配列。xqyq (および 3 次元内挿のための zq) と同じサイズでなければなりません。

  • クエリ点のグリッドを渡す場合に配列を指定します。ndgrid または meshgrid を使用して配列を作成します。

  • 散布点の集合を渡す場合にベクトルを指定します。

yq

評価対象のクエリ点の y- 座標を指定するベクトルまたは配列。yqxq (および 3 次元内挿のための zq) と同じサイズでなければなりません。

  • クエリ点のグリッドを渡す場合に配列を指定します。ndgrid または meshgrid を使用して配列を作成します。

  • 散布点の集合を渡す場合にベクトルを指定します。

zq

評価対象のクエリ点の z- 座標を指定するベクトルまたは配列。zqxq および yq と同じサイズでなければなりません。

  • クエリ点のグリッドを渡す場合に配列を指定します。ndgrid または meshgrid を使用して配列を作成します。

  • 散布点の集合を渡す場合にベクトルを指定します。

method

内挿法を指定するキーワード。次のいずれかを使用します。

手法説明連続性
'nearest'2 次元および 3 次元の内挿をサポートする、三角形分割に基づく最近傍内挿。不連続
'linear'2 次元および 3 次元の内挿をサポートする、三角形分割に基づく線形内挿 (既定値)。C0
'natural'2 次元および 3 次元の内挿をサポートする、三角形分割に基づく自然な近傍内挿。この方法は線形と 3 次の間の効果的なトレードオフを提供します。C1 (サンプル ポイントを除く)
'cubic'2 次元の内挿のみをサポートする、三角形分割に基づく 3 次内挿。C2
'v4'

2 次元の内挿のみをサポートする、重調和スプライン内挿 (MATLAB® 4 griddata 法)。他の方法とは異なり、この内挿法は三角形分割に基づきません。

C2

出力引数

vq

クエリ点での内挿された値。

  • 2 次元内挿の場合、xq および yq はクエリ点の mn 列のグリッドを指定し、vqmn 列の配列です。

  • 3 次元内挿の場合、xqyq および zq はクエリ点の mx n x p のグリッドを指定し、vqm x n x p の配列です。

  • xqyq、(および 3 次元内挿の場合は zq) が散布する点を指定するベクトルの場合、vq は同じ長さのベクトルです。

すべて折りたたむ

-2.52.5 の間の 200 個のランダムな点で、関数をサンプリングします。

xy = -2.5 + 5*gallery('uniformdata',[200 2],0);
x = xy(:,1);
y = xy(:,2);
v = x.*exp(-x.^2-y.^2);

xy および v は、散布 (非等間隔) サンプル点とデータを含むベクトルです。

定間隔のグリッドを定義し、散布データをそのグリッドに内挿します。

[xq,yq] = meshgrid(-2:.2:2, -2:.2:2);
vq = griddata(x,y,v,xq,yq);

グリッド データをメッシュとしてプロットし、散布データをドットとしてプロットします。

figure
mesh(xq,yq,vq);
hold on
plot3(x,y,v,'o');

h = gca;
h.XLim = [-2.7 2.7];
h.YLim = [-2.7 2.7];

-11 の間の 5000 個のランダムな点で、関数をサンプリングします。乱数発生器を初期化して randn の出力を反復可能にします。

rng default
x = 2*rand(5000,1) - 1;
y = 2*rand(5000,1) - 1;
z = 2*rand(5000,1) - 1;
v = x.^2 + y.^2 + z.^2;

xy および z は、不等間隔なサンプル データを含むベクトルです。

範囲 [-0.8, 0.8] の点で通常のグリッドを定義します。

d = -0.8:0.05:0.8;
[xq,yq,zq] = meshgrid(d,d,0);

z=0 の長方形領域に対して散布データを内挿します。次に、結果をプロットします。

vq = griddata(x,y,z,v,xq,yq,zq);
surf(xq,yq,vq);

h = gca;
h.XTick = [-1 -0.5 0 0.5 1];
h.YTick = [-1 -0.5 0 0.5 1];

R2006a より前に導入

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