2009-11-18 269 views

回答

0

查找二維插值。有一些簡單的算法,但它們可能表現不佳(或需要很長時間來計算)。

1

here

產地的XYZ輪廓圖可以讓你甚至無須您的XYZ數據轉換成一個矩陣創建的等高線圖。它使用稱爲三角測量的插值形式。

三角剖分是將表面或平面多邊形劃分爲一組三角形,通常限制爲每個三角形邊完全由兩個相鄰三角形共享。三角形還具有能夠處理稀疏的額外好處作爲不規則數據。

所以聽起來好像很難,但可行的。

2

有很多插值算法可以用來獲得中間點。我在GIS中使用的一個是Kriging algorithm,它看起來像你發佈的數據使用類似的東西。 (可以說,因爲例如「熱黃」光點不上的黃色樣品中心,這將是與線性內插的情況下)

Wikipedia's Bicubic Interpolation page has some nice examples of the effect of choosing a different interpolation.

不同的數據可能需要不同的內插。

然後使用Gnuplot

as described here,創建彩色輪廓。

Looks like it can handle non-rectangular data,,但我會測試這個假設。

一個例子:

Example GnuPlot contour image http://t16web.lanl.gov/Kawano/gnuplot/fig/sample6.8b.png

+0

它可以處理稀疏/不規則數據嗎? – BostonLogan 2009-11-18 19:31:19

1

所示的圖像是不是一個傳統的等高線圖。它基本上是matlab可能用pcolor函數產生的,如果該函數可以直接用於分散數據。實際上,pcolor只是衝浪,可以打電話查看(0,90)。

如果你真的想看到的等高線圖,最簡單的答案是使用tricontour,在文件交換中找到。該工具將對散佈的數據進行三角測量,然後生成等高線圖。

如果要生成一個離散數據集的令pColor樣的解決方案,那麼一個簡單的解決方案是使用德勞內三角測量數據,然後調用trisurf。該調用看起來依稀像這樣...

tri = delaunay(x,y); 
trisurf(tri,x,y,z) 
view(0,90) 

誠然,這種解決辦法將不會給你的原始畫面的精美彩色圓形域。其他更復雜的解決方案將是必要的。但由於我不確定我上面提出的解決方案是否可以接受,我現在就會停下來。