MATLAB Function Reference |
Syntax
VI = interp3(X,Y,Z,V,XI,YI,ZI) VI = interp3(V,XI,YI,ZI) VI = interp3(V,ntimes) VI = interp3(...,method)
Description
VI = interp3(X,Y,Z,V,XI,YI,ZI)
其中 X
、 Y
、 Z
、 V
是三維矩陣,前三者代表資料點輸入的部分, V
是資料點輸出的部分,XI
、 YI
、 ZI
則是內插點。超出範圍的值會傳回 NaN
。
VI = interp3(V,XI,YI,ZI)
會假設 X=1:N
、 Y=1:M
、 Z=1:P
, [M,N,P]=size(V)
。
VI = interp3(V,ntimes)
藉著在每個元素間插入內插值來延展 V
,遞迴的作 ntimes
次。 interp3(V)
就等於 interp3(V,1)
。
VI = interp3(...,method)
可以指定內插的方法:
'linear' |
三維線性內插法 (預設值) |
'cubic' |
三維三次內插 |
'spline' |
三維三次 spline 內插法 |
'nearest' |
鄰近點內插 |
Discussion
這裡所有的內插方法都需要 X
、 Y
和 Z
是單調的(monotonic),且與 ("plaid") 有相同的格式就好像由 meshgrid
所產生的。在進行內插之前,會把 X
、 Y
、 Z
、 XI
、 YI
、 ZI
調整成等距來作處理。當 X
、 Y
、 Z
已是等距且單調時,就可以用 '
*linear'
、 '
*cubic'
、 '
或 '
*nearest'
來加快執行的速度。
Examples
在 finer mesh 上對 flow
函式所產生的資料點作內插 :
[x,y,z,v] = flow(10); [xi,yi,zi] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3); vi = interp3(x,y,z,v,xi,yi,zi); % V is 31-by-41-by-27 slice(xi,yi,zi,vi,[6 9.5],2,[-2 .2]), shading flat
See Also
interp1
, interp2
, interpn
, meshgrid
interp2 | interpft |