griddata

griddata

MATLAB散亂點插值函式,Python中的三維點插值。

griddata
數據格線化
語法
ZI = griddata(x,y,z,XI,YI)
[XI,YI,ZI] = griddata(x,y,z,XI,YI)
[...] = griddata(...,method)
[...] = griddata(...,method,options)
說明
ZI = griddata(x,y,z,XI,YI) 調整形如z = f(x,y)的曲面,使之與非等間距矢量(x,y,z)中的數據吻合。griddata 函式在指定的(XI,YI)點處插補此曲面,生成ZI. 此曲面一定通過這些數據點。 XI 和 YI 通常構成均勻格線(與meshgrid函式生成的相同). XI 可以是行矢量,這種情況下該矢量確定一個具有固定列數的矩陣。與之類似,YI 可以是列矢量,確定一個具有固定行數的矩陣。
[XI,YI,ZI] = griddata(x,y,z,XI,YI) 函式返回與上述矩陣相同的插補後的矩陣ZI。並返回由行矢量XI和列矢量yi形成的矩陣XI 和YI. 後者與meshgrid 函式返回的矩陣相同。
[...] = griddata(...,method)使用規定的插補方法:
'linear' 基於三角形的線性插補法(預設)
'cubic' 基於三角形的三次插補法
'nearest' 最近鄰居插補法
'v4' MATLAB 4 griddata方法。
這些方法定義了匹配數據點的曲面類型。'cubic' 和 'v4' 方法生成平滑曲面,而 'linear' 和 'nearest' 分別具有一階導數和零階導數不連續。除'v4' 外所有方法基於數據的三角化。如果方法為[], 則使用預設的'linear' 方法。
[...] = griddata(...,method,options)指定一串將通過delaunayn函式在Qhull中使用的單元陣列選項. 如果選項為 [], 則使用預設的三角化選項。如果選項為{''}, 不使用任何選項,包括預設選項。有時,griddata 函式可能將位於數據凸殼上或靠近凸殼的點返回為NaNs。這是因為有時計算中的圓整處理使得很難確定一個靠近邊界的點是否處於凸殼內。
評價
XI and YI 可以是矩陣,這種情況下 griddata函式返回對應點(XI(i,j),YI(i,j))的值. 如若不然,你可以在行向量和列向量xi 和yi中傳遞, 在這種情況下,griddata對這些矢量插補,如同它們是由命令meshgrid(xi,yi)生成的矩陣一樣。
算法
griddata(...,'v4') 命令使用 [3] 中文檔化的方法。其他griddata方法基於使用Qhull [2] 的數據三角化。
實例
對一個函式在±2.0範圍內隨機採樣100點:
rand('seed',0)
x = rand(100,1)*4-2; y = rand(100,1)*4-2;
z = x.*exp(-x.^2-y.^2);
x, y, 和 z 均為包含非均勻採樣數據的矢量。定義一個規範的格線,將數據與格線匹配:
ti = -2:.25:2;
[XI,YI] = meshgrid(ti,ti);
ZI = griddata(x,y,z,XI,YI);
Plot the gridded data along with the nonuniform data points used to generate it: mesh(XI,YI,ZI), hold
plot3(x,y,z,'o'), hold

相關詞條

熱門詞條

聯絡我們