meshgrid 形式の 3 次元グリッド データの内挿
ページ内をすべて折りたたむ
構文
Vq = interp3(X,Y,Z,V,Xq,Yq,Zq)
Vq = interp3(V,Xq,Yq,Zq)
Vq = interp3(V)
Vq = interp3(V,k)
Vq = interp3(___,method)
Vq = interp3(___,method,extrapval)
説明
例
Vq = interp3(X,Y,Z,V,Xq,Yq,Zq)
は、線形内挿を使用して、特定のクエリ点における 3 つの変数の関数の内挿値を返します。結果は常に、関数の元のサンプリングを通過します。X
、Y
および Z
は、サンプル点の座標を含んでいます。V
は、各サンプル点の対応する関数値を含んでいます。Xq
、Yq
および Zq
は、クエリ点の座標を含んでいます。
Vq = interp3(V,Xq,Yq,Zq)
は、サンプル点の既定のグリッドを想定します。既定のグリッド点 X=1:n
、Y=1:m
、Z=1:p
は、領域をカバーします。ここで [m,n,p] = size(V)
です。この構文は、点の間の絶対距離を考慮せず、メモリを節約する場合に使用します。
Vq = interp3(V)
は、各次元で 1 回ずつサンプル値の間の区間を分割して形成される調整後のグリッドに、内挿値を返します。
Vq = interp3(V,k)
は、各次元で区間の 2 分割を k
回繰り返して形成される調整後のグリッドに、内挿値を返します。この操作により、サンプル値の間に、2^k-1
個の内挿点が形成されます。
例
Vq = interp3(___,method)
は代替内挿法として、'linear'
、'nearest'
、'cubic'
、'makima'
または 'spline'
を指定します。既定の手法は、'linear'
です。
例
Vq = interp3(___,method,extrapval)
は、サンプル点の領域の外側に位置するすべてのクエリに割り当てられたスカラー値 extrapval
も指定します。
サンプル点の領域の外側でクエリの extrapval
引数を省略すると、method
引数に基づき、interp3
は次のいずれかを返します。
'spline'
および'makima'
メソッドの場合、外挿値その他の内挿法の場合、
NaN
値
例
すべて折りたたむ
既定の方法を使用した内挿
ライブ スクリプトを開く
各次元の 10 個の点でサンプリングした、関数 flow の点と値を読み込みます。
[X,Y,Z,V] = flow(10);
関数 flow
は、配列 (X
、Y
、Z
) 内のグリッドを返します。このグリッドは、、、 の領域をカバーし、間隔は 、、 です。
ここで、X=6
、X=9
、Y=2
および Z=0
の座標におけるサンプルのボリュームを通るスライスをプロットします。
figureslice(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);figureslice(Xq,Yq,Zq,Vq,[6 9],2,0);shading flat
3 次法を使用した内挿
ライブ スクリプトを開く
各次元の 10 個の点でサンプリングした、関数 flow の点と値を読み込みます。
[X,Y,Z,V] = flow(10);
関数 flow
は、配列 (X
、Y
、Z
) 内のグリッドを返します。このグリッドは、、、 の領域をカバーし、間隔は 、、 です。
X=6
、X=9
、Y=2
および Z =0
の座標におけるサンプルのボリュームを通るスライスをプロットします。
figureslice(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');figureslice(Xq,Yq,Zq,Vq,[6 9],2,0);shading flat
X、Y、Z の領域の外側での評価
ライブ スクリプトを開く
グリッド ベクトル x
、y
および z
を作成します。これらのベクトルは、V
内の値に関連付けられた点を定義します。
x = 1:100;y = (1:50)';z = 1:30;
値が 50×100×30 の乱数配列 V
となるように、サンプルを定義します。配列を作成するには、関数 rand
を使用します。
rng('default')V = rand(50,100,30);
x
、y
および 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×3 -1 -1 -1
3 つの点はすべて、x
、y
および z
の領域の外側にあるため、-1
と評価されます。
入力引数
すべて折りたたむ
X,Y,Z
— サンプル グリッド点
配列 | ベクトル
サンプル グリッド点。実数配列またはベクトルとして指定します。サンプル グリッド点は一意でなければなりません。
X
、Y
およびZ
が行列の場合、(meshgrid 形式の) フル グリッドの座標を含んでいます。X
、Y
およびZ
の配列を一緒に作成するには、関数 meshgrid を使用します。これらの配列は同じサイズでなければなりません。X
、Y
およびZ
がベクトルの場合、グリッド ベクトルとして扱われます。これらのベクトルの値は厳密に単調で、増加または減少しなければなりません。
例: [X,Y,Z] = meshgrid(1:30,-10:10,1:5)
データ型: single
| double
V
— サンプル値
配列
サンプル値。実数配列または複素数配列として指定します。V
のサイズ要件は、X
、Y
および Z
のサイズによって異なります。
X
、Y
、およびZ
が (meshgrid
形式の) フル グリッドを表す配列の場合、V
のサイズはX
、Y
、またはZ
のサイズと同じになります。X
、Y
およびZ
がグリッド ベクトルの場合、size(V) = [length(Y) length(X) length(Z)]
となります。
V
に複素数が含まれる場合、interp3
は実数部と虚数部を個別に内挿します。
例: rand(10,10,10)
データ型: single
| double
複素数のサポート: あり
Xq,Yq,Zq
— クエリ点
スカラー | ベクトル | 配列
クエリ点。実数のスカラー、ベクトルまたは配列として指定します。
Xq
、Yq
およびZq
がスカラーの場合、R3 における単一のクエリ点の座標になります。Xq
、Yq
およびZq
が異なる向きのベクトルの場合、Xq
、Yq
およびZq
は、R3 におけるグリッド ベクトルとして扱われます。Xq
、Yq
およびZq
が同じサイズと向きをもつベクトルの場合、Xq
、Yq
およびZq
は、R3 における散布点として扱われます。Xq
、Yq
およびZq
が同じサイズの配列の場合、R3 における、クエリ点 (meshgrid
形式) または散布点のフル グリッドを表します。
例: [Xq,Yq,Zq] = meshgrid((1:0.1:10),(-5:0.1:0),3:5)
データ型: single
| double
k
— 調整係数
1
(既定値) | 実数の非負の整数スカラー
調整係数。実数の非負のスカラー整数として指定します。この値は、各次元で調整されるグリッドの区間を分割する繰り返し回数を指定します。この操作により、サンプル値の間に、2^k-1
個の内挿点が形成されます。
k
が 0
の場合、Vq
は V
と同じになります。
interp3(V,1)
は、interp3(V)
と同じです。
次の図は、R3 の 1 平面における k=2
を示しています。赤色の内挿値が 72、黒のサンプル値が 9 つあります。
例: interp3(V,2)
データ型: single
| double
method
— 内挿法
'linear'
(既定値) | 'nearest'
| 'cubic'
| 'spline'
| 'makima'
内挿法。次の表のオプションのいずれかとして指定します。
メソッド | 説明 | 連続性 | コメント |
---|---|---|---|
'linear' | クエリ点に内挿される値は、対応する各次元における、隣接するグリッド点の値を使用した線形内挿に基づいて決定されます。これは既定の内挿法です。 | C0 |
|
'nearest' | クエリ点に内挿される値は、最も近いサンプル グリッド点の値になります。 | 不連続 |
|
'cubic' | クエリ点に内挿される値は、個々の次元で隣接するグリッド点の値の 3 次内挿に基づいて決定されます。内挿は、3 次畳み込みに基づいて決定されます。 | C1 |
|
'makima' | 修正 Akima 3 次エルミート内挿。クエリ点に内挿される値は、対応する各次元における隣接するグリッド点の値を使用した、最大 3 次の多項式の区分的関数に基づいて決定されます。Akima 式はオーバーシュートを回避するよう修正されています。 | C1 |
|
'spline' | クエリ点に内挿される値は、個々の次元で隣接するグリッド点の値の 3 次内挿に基づいて決定されます。内挿は節点なし端点条件を使用した 3 次スプラインに基づいています。 | C2 |
|
extrapval
— X
、Y
および Z
の領域の外側の関数値
スカラー
X
、Y
および Z
の領域の外側の関数値。実数または複素数のスカラーとして指定します。interp3
は、X
、Y
および Z
の領域の外側のすべての点に対して、この定数値を返します。
例: 5
例: 5+1i
データ型: single
| double
複素数のサポート: あり
出力引数
すべて折りたたむ
Vq
— 内挿値
スカラー | ベクトル | 配列
内挿値。実数または複素数のスカラー、ベクトルまたは配列として返されます。Vq
のサイズと形状は、使用する構文、場合によっては入力引数のサイズと値によって異なることがあります。
構文 | 特殊な条件 | Vq のサイズ | 例 |
---|---|---|---|
interp3(X,Y,Z,V,Xq,Yq,Zq) interp3(V,Xq,Yq,Zq) と、 method または extrapval を含む上記構文のバリエーション | Xq 、Yq および Zq はスカラー | スカラー | Xq 、Yq および Zq をスカラーとして渡した場合は size(Vq) = [1 1] 。 |
上記に同じ | Xq 、Yq および Zq は、サイズと向きが同じベクトル | Xq 、Yq および Zq と同じサイズと向きをもつベクトル | size(Xq) = [100 1] かつ size(Yq) = [100 1] かつ size(Zq) = [100 1] の場合、 size(Vq) = [100 1] 。 |
上記に同じ | Xq 、Yq および 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] 。 |
上記に同じ | Xq 、Yq および Zq は、同じサイズの配列 | Xq 、Yq および Zq と同じサイズの配列 | size(Xq) = [50 25] かつ size(Yq) = [50 25] かつ size(Zq) = [50 25] の場合、 size(Vq) = [50 25] 。 |
interp3(V,k) と、 method または extrapval を含む上記構文のバリエーション | なし |
| size(V) = [10 12 5] かつ k = 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 座標が含まれます。各配列の値は 1 つの次元に沿って変化し、それ以外の次元に沿っては一定しています。
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 つの配列またはベクトル (Xq
、Yq
、Zq
) から構成されます。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];
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意事項および制限事項:
Xq
、Yq
およびZq
は、同じサイズでなければなりません。meshgrid
を使用してグリッドで評価します。最適な結果を得るには、
X
、Y
およびZ
をベクトルとして指定してください。これらのベクトルの値は、厳密に単調で増加しなければなりません。コード生成は、
'makima'
内挿法をサポートしていません。'cubic'
内挿法の場合、グリッドが等間隔でなければ結果はエラーとなります。この場合は、'spline'
内挿法を使用します。最適な結果を得るには、
'spline'
内挿法を使用するときに、以下を実行してください。meshgrid
を使用して、入力Xq
、Yq
およびZq
を作成します。V
の次元に相対的な少数の内挿点を使用します。大規模な一連の散布点に対して内挿すると、非効率的になる可能性があります。
スレッドベースの環境
MATLAB® の backgroundPool
を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool
を使用してコードを高速化します。
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
V
は double または single の 3 次元配列でなければなりません。V
は実数または複素数にできます。X
、Y
、Z
は以下の条件を満たさなければなりません。型が同じである (double または single)。
対応する次元において増加し重複がない要素をもつ有限ベクトルまたは 3 次元配列である。
X
、Y
、Z
が 3 次元配列である場合に直交座標軸と一致する (meshgrid
で生成された場合と同様)。次元が
V
と一致する。
Xq
、Yq
、Zq
は同じ型 (double または single) のベクトルまたは配列でなければなりません。Xq
、Yq
、Zq
が配列の場合、それらのサイズは同じでなければなりません。これらが長さの異なるベクトルである場合、そのうちのいずれかの方向が異なっていなければなりません。method
は、'linear'
または'nearest'
でなければなりません。境界外入力の外挿はサポートされていません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入
参考
interp1 | interp2 | interpn | meshgrid
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本 (日本語)
- 한국 (한국어)
Contact your local office