ドキュメンテーション

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

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

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

'linear'

線形内挿 (既定の設定)

'cubic'

3 次内挿

'natural'

自然な近傍内挿

'nearest'

最近傍点による内挿

'v4'

MATLAB® 4 での griddata

出力引数

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;
set(h,'XLim',[-2.7 2.7]);
set(h,'YLim',[-2.7 2.7]);

xy 平面のグリッドへの 3 次元データセットの内挿

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

rng(0,'twister')
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);
set(gca,'XTick',[-1 -0.5 0 0.5 1]);
set(gca,'YTick',[-1 -0.5 0 0.5 1]);

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