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

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

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

interp3

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

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

構文

  • Vq = interp3(X,Y,Z,V,Xq,Yq,Zq)
  • Vq = interp3(V,Xq,Yq,Zq)
  • Vq = interp3(V,ntimes)
  • Vq = interp3(___,method)
  • Vq = interp3(___,method,extrapval)

説明

Vq = interp3(X,Y,Z,V,Xq,Yq,Zq) は、線形内挿を使用して、特定のクエリ点における 3 つの変数の関数の内挿値を返します。結果は常に、関数の元のサンプリングを通過します。XY および Z は、サンプル点の座標を含んでいます。V は、各サンプル点の対応する関数値を含んでいます。XqYq および Zq は、クエリ点の座標を含んでいます。

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

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

Vq = interp3(___,method) は、前の構文のいずれかで渡すことができる、オプションの後続入力引数を指定します。method 引数は、代替内挿法を指定する、次の文字列のいずれかです。'linear''nearest''cubic''spline'。既定の手法は、'linear' です。

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

すべて展開する

既定の方法を使用した内挿

各次元の 10 個の点でサンプリングした、関数 flow の点と値を読み込みます。

[X,Y,Z,V] = flow(10);

関数 flow は、配列 (XYZ) 内のグリッドを返します。このグリッドは、0.1 ≤ X ≤ 10、–3 ≤ Y ≤ 3、–3 ≤ Z ≤ 3 の領域をカバーし、間隔は ΔX = 0.5、ΔY = 0.7、ΔZ = 0.7 です。

ここで、次の座標におけるサンプルのボリュームを通るスライスをプロットします。X=6X=9Y=2 および Z=0

figure
slice(X,Y,Z,V,[6 9],2,0);
shading flat

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

[Xq,Yq,Zq] = meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);

クエリ グリッド内の点で内挿し、同じスライス平面を使用して結果をプロットします。

Vq = interp3(X,Y,Z,V,Xq,Yq,Zq);
figure
slice(Xq,Yq,Zq,Vq,[6 9],2,0);
shading flat

3 次法を使用した内挿

各次元の 10 個の点でサンプリングした、関数 flow の点と値を読み込みます。

[X,Y,Z,V] = flow(10);

関数 flow は、配列 (XYZ) 内のグリッドを返します。このグリッドは、0.1 ≤ X ≤ 10、–3 ≤ Y ≤ 3、–3 ≤ Z ≤ 3 の領域をカバーし、間隔は ΔX = 0.5、ΔY = 0.7、ΔZ = 0.7 です。

次の座標におけるサンプルのボリュームを通るスライスをプロットします。X=6X=9Y=2 および Z =0

figure
slice(X,Y,Z,V,[6 9],2,0);
shading flat

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

[Xq,Yq,Zq] = meshgrid(.1:.25:10,-3:.25:3,-3:.25:3);

'cubic' 内挿法を使用して、クエリ グリッド内の点で内挿を実行します。次に、結果をプロットします。

Vq = interp3(X,Y,Z,V,Xq,Yq,Zq,'cubic');
figure
slice(Xq,Yq,Zq,Vq,[6 9],2,0);
shading flat

X、Y、Z の領域の外側での評価

グリッド ベクトル xy および z を作成します。これらのベクトルは、V 内の値に関連付けられた点を定義します。

x = 1:100;
y = (1:50)';
z = 1:30;

値が 50 x 100 x 30 の乱数配列 V となるように、サンプルを定義します。配列の作成には関数 gallery を使用します。

V = gallery('uniformdata',50,100,30,0);

xy および z の領域の外側にある 3 つの点で V を評価します。extrapval = -1 を指定します。

xq = [0 0 0];
yq = [0 0 51];
zq = [0 101 102];
vq = interp3(x,y,z,V,xq,yq,zq,'linear',-1)
vq =

    -1    -1    -1

3 つの点はすべて、xy および z の領域の外側にあるため、-1 と評価されます。

入力引数

すべて展開する

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

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

  • XY および Z が行列の場合、(meshgrid 形式の) フル グリッドの座標を含んでいます。XY および Z 配列を一緒に作成するには、関数 meshgrid を使用します。これらの配列は同じサイズでなければなりません。

  • XY および Z がベクトルの場合、グリッド ベクトルとして扱われます。これらのベクトルの値は、厳密に単調で増加しなければなりません。

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

データ型:single | double

V - サンプル値配列

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

  • XY および Z が (meshgrid 形式の) フル グリッドを表す配列の場合、V のサイズは XY または Z と同じサイズになります。

  • XY および Z がグリッド ベクトルの場合、size(V) = [length(Y) length(X) length(Z)] となります。

例: rand(10,10,10)

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

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

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

  • XqYq および Zq がスカラーの場合、R3 における単一のクエリ点の座標になります。

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

  • XqYq および Zq が同じサイズと向きをもつベクトルの場合、XqYq および Zq は、R3 における散布点として扱われます。

  • XqYq および Zq が同じサイズの配列の場合、R3 における、クエリ点 (meshgrid 形式) または散布点のフル グリッドを表します。

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

データ型:single | double

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

調整係数。実数の非負のスカラー整数として指定します。この値は、各次元で元のサンプル値間に interp3 が挿入する内挿値の数を指定します。ntimes0 の場合、VqV と同じになります。次の図は、R3 の 1 平面における ntimes=3 を示しています。赤色の内挿値が 72、黒のサンプル値が 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 および Z の領域の外側の関数値スカラー

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

例: 5

例: 5+1i

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

出力引数

すべて展開する

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

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

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

i 番目の次元の長さが
2^ntimes * (size(V,i)-1)+1 である配列

size(V) = [10 12 5]
かつ ntimes = 3 の場合、
size(Vq) = [73 89 33]

詳細

すべて展開する

厳密に単調

反転せずに、常に増加または減少する一連の値。たとえば、シーケンス 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 形式の) フル グリッド

interp3 の場合、フル グリッドは 3 つの配列から構成されます。配列の要素は、R3 における領域を定義する点のグリッドを表しています。最初の配列には x 座標、2 番目の配列には y 座標、3 番目の配列には z 座標が含まれます。

x 配列の値は、厳密に単調で増加し、2 番目の次元に沿って変化します。y 配列の値は、厳密に単調で増加し、最初の次元に沿って変化します。z 配列の値は、厳密に単調で増加し、3 番目の次元に沿って変化します。関数 meshgrid を使用して、interp3 に渡すことができるフル グリッドを作成します。

グリッド ベクトル

interp3 の場合、グリッド ベクトルは、R3 におけるグリッド上の点を定義する、向きが混在する 3 つのベクトルから構成されます。

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

x = 1:3;
y = (4:5)';
z = 6:8;

散布点

interp3 の場合、散布点は、R3 に散在する点の集合を定義する 3 つの配列またはベクトル (XqYqZq) から構成されます。i 番目の配列には、i 番目の次元の座標が含まれています。

たとえば次のコードは、(1, 19, 10)、(6, 40, 1)、(15, 33, 22) および (0, 61, 13) の点を指定します。

Xq = [1 6; 15 0];
Yq = [19 40; 33 61];
Zq = [10 1; 22 13];

参考

| | |

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