MATLAB 的 interp2 指令可進行二維格子點內插,其使用語法如下:
zi = interp2(x, y, z, xi, yi, method)
其中 z 是一矩陣,代表一函數的高度,而矩陣 x 及 y 則是此函數在方格子點的 x 及 y 座標,矩陣 xi 及 yi 則是內插點的 x 及 y 座標,字串 method 則指定使用的內插法,有 4 種:
- 'nearest':鄰近點內插法
- 'linear':二維線性內插法
- 'spline':二維 Spline 內插法
- 'cubic':二維三次內插法
使用 interp2 時,x 及 y 都必須是嚴格遞增或遞減。一般情況下,x 及 y 都是由 meshgrid 所產生,以保證其格式的正確性。
用不同的方法進行二維內插,會得到不同的效果,以下我們使用曲面圖及等高線來顯示不同內插法所得到的不同結果:
由上兩圖可看出,method = 'cubic' 產生的曲面較其它兩種方法('nearest' 及 'linear')為平滑。若使用 'spline' 也會產生平滑的曲面,這部分請讀者修改上述範例程式,自行試試看。
MATLAB程式設計:進階篇