MATLAB ヘルプ センター
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
X,Y,Z
V
Xq,Yq,Zq
X
Y
Z
Xq
Yq
Zq
例
Vq = interp3(V,Xq,Yq,Zq) は、サンプル点の既定のグリッドを想定します。既定のグリッド点 X=1:n、Y=1:m、Z=1:p は、領域をカバーします。ここで [m,n,p] = size(V) です。この構文は、点の間の絶対距離を考慮せず、メモリを節約する場合に使用します。
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 個の内挿点が形成されます。
k
2^k-1
Vq = interp3(___,method) は代替内挿法として、'linear'、'nearest'、'cubic'、'makima' または 'spline' を指定します。既定の手法は、'linear' です。
method
'linear'
'nearest'
'cubic'
'makima'
'spline'
Vq = interp3(___,method,extrapval) は、サンプル点の領域の外側に位置するすべてのクエリに割り当てられたスカラー値 extrapval も指定します。
extrapval
サンプル点の領域の外側でクエリの extrapval 引数を省略すると、method 引数に基づき、interp3 は次のいずれかを返します。
interp3
'spline' および 'makima' メソッドの場合、外挿値
その他の内挿法の場合、NaN 値
NaN
すべて折りたたむ
各次元の 10 個の点でサンプリングした、関数 flow の点と値を読み込みます。
[X,Y,Z,V] = flow(10);
関数 flow は、配列 (X、Y、Z) 内のグリッドを返します。このグリッドは、0.1≤X≤10、-3≤Y≤3、-3≤Z≤3 の領域をカバーし、間隔は ΔX=0.5、ΔY=0.7、ΔZ=0.7 です。
flow
ここで、X=6、X=9、Y=2 および Z=0 の座標におけるサンプルのボリュームを通るスライスをプロットします。
X=6
X=9
Y=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
X=6、X=9、Y=2 および Z =0 の座標におけるサンプルのボリュームを通るスライスをプロットします。
Z =0
'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 を作成します。これらのベクトルは、V 内の値に関連付けられた点を定義します。
x
y
z
x = 1:100; y = (1:50)'; z = 1:30;
値が 50×100×30 の乱数配列 V となるように、サンプルを定義します。配列を作成するには、関数 rand を使用します。
rand
rng('default') V = rand(50,100,30);
x、y および z の領域の外側にある 3 つの点で V を評価します。extrapval = -1 を指定します。
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 と評価されます。
-1
サンプル グリッド点。実数配列またはベクトルとして指定します。サンプル グリッド点は一意でなければなりません。
X、Y および Z が行列の場合、(meshgrid 形式の) フル グリッドの座標を含んでいます。X、Y および Z の配列を一緒に作成するには、関数 meshgrid を使用します。これらの配列は同じサイズでなければなりません。
meshgrid
X、Y および Z がベクトルの場合、グリッド ベクトルとして扱われます。これらのベクトルの値は厳密に単調で、増加または減少しなければなりません。
例: [X,Y,Z] = meshgrid(1:30,-10:10,1:5)
[X,Y,Z] = meshgrid(1:30,-10:10,1:5)
データ型: single | double
single
double
サンプル値。実数配列または複素数配列として指定します。V のサイズ要件は、X、Y および Z のサイズによって異なります。
X、Y、および Z が (meshgrid 形式の) フル グリッドを表す配列の場合、V のサイズは X、Y、または Z のサイズと同じになります。
X、Y および Z がグリッド ベクトルの場合、size(V) = [length(Y) length(X) length(Z)] となります。
size(V) = [length(Y) length(X) length(Z)]
V に複素数が含まれる場合、interp3 は実数部と虚数部を個別に内挿します。
例: rand(10,10,10)
rand(10,10,10)
データ型: single | double 複素数のサポート: あり
クエリ点。実数のスカラー、ベクトルまたは配列として指定します。
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)
[Xq,Yq,Zq] = meshgrid((1:0.1:10),(-5:0.1:0),3:5)
1
調整係数。実数の非負のスカラー整数として指定します。この値は、各次元で調整されるグリッドの区間を分割する繰り返し回数を指定します。この操作により、サンプル値の間に、2^k-1 個の内挿点が形成されます。
k が 0 の場合、Vq は V と同じになります。
0
interp3(V,1) は、interp3(V) と同じです。
interp3(V,1)
interp3(V)
次の図は、R3 の 1 平面における k=2 を示しています。赤色の内挿値が 72、黒のサンプル値が 9 つあります。
k=2
例: interp3(V,2)
interp3(V,2)
内挿法。次の表のオプションのいずれかとして指定します。
各次元に少なくとも 2 つのグリッド点が必要
'nearest' よりも多いメモリが必要
各次元に 2 つのグリッド点が必要
中程度のメモリ要求で最高速の計算
各次元でグリッドが等間隔でなければならない。ただし、すべての次元で間隔が同じである必要はありません。
各次元に少なくとも 4 つの点が必要
'linear' よりも多くのメモリと長い計算時間が必要
各次元に少なくとも 2 つの点が必要
'spline' より少ない波形を生成
計算時間は通常 'spline' より短いが、メモリの要件は同様
各次元に少なくとも 4 つの点が必要であり、2 点または 3 点が指定された場合は、それぞれ線形内挿または 2 次内挿にフォールバックする
'cubic' よりも多くのメモリと長い計算時間が必要
X、Y および Z の領域の外側の関数値。実数または複素数のスカラーとして指定します。interp3 は、X、Y および Z の領域の外側のすべての点に対して、この定数値を返します。
例: 5
5
例: 5+1i
5+1i
内挿値。実数または複素数のスカラー、ベクトルまたは配列として返されます。Vq のサイズと形状は、使用する構文、場合によっては入力引数のサイズと値によって異なることがあります。
interp3(X,Y,Z,V,Xq,Yq,Zq)
interp3(V,Xq,Yq,Zq)
size(Vq) = [1 1]
size(Xq) = [100 1]
size(Yq) = [100 1]
size(Zq) = [100 1]
size(Vq) = [100 1]
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]
size(Xq) = [50 25]
size(Yq) = [50 25]
size(Zq) = [50 25]
size(Vq) = [50 25]
interp3(V,k)
i 番目の次元の長さが 2^k * (size(V,i)-1)+1 である配列
i
2^k * (size(V,i)-1)+1
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) の間に反転が含まれているため、単調ではありません。
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)
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];
すべて展開する
使用上の注意および制限:
Xq、Yq および Zq は、同じサイズでなければなりません。meshgrid を使用してグリッドで評価します。
最適な結果を得るには、X、Y および Z をベクトルとして指定してください。これらのベクトルの値は、厳密に単調で増加しなければなりません。
コード生成は、'makima' 内挿法をサポートしていません。
'cubic' 内挿法の場合、グリッドが等間隔でなければ結果はエラーとなります。この場合は、'spline' 内挿法を使用します。
最適な結果を得るには、'spline' 内挿法を使用するときに、以下を実行してください。
meshgrid を使用して、入力 Xq、Yq および Zq を作成します。
V の次元に相対的な少数の内挿点を使用します。大規模な一連の散布点に対して内挿すると、非効率的になる可能性があります。
backgroundPool
ThreadPool
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
interp3 関数は 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)を参照してください。
この関数は分散配列を完全にサポートしています。詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
R2006a より前に導入
interp1 | interp2 | interpn | meshgrid
interp1
interp2
interpn
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ