我正在尋找一個C++相當於Matlab的griddata函數或任何2D全局插值方法。在C++中等效的Matlab griddata
我有一個使用Eigen 3的C++代碼。我將有一個包含x,y和z值的特徵向量,以及兩個與Matlab中由Meshgrid產生的特徵向量等效的特徵向量。我想將矢量中的z值插入由Meshgrid等價物定義的網格點(它將延伸過原始點的外部一點,因此需要進行較小的外插)。
我並不太在意準確性 - 它不需要完美。然而,我不能接受NaN作爲解決方案 - 插值必須在網格上的任何位置進行計算,而不管數據間隙如何。換句話說,留在凸包內不是一種選擇。
我不想從頭開始寫插值,但如果有人想指向我相當好(和明確)的食譜,我會給它一個鏡頭。這不是寫的最可恨的事情(至少在算法意義上),但我不想重新發明輪子。
實際上,我擁有的是分散的地形位置,我希望定義一個名義上跟隨地形下方一定距離的直線網格,以供以後使用。一旦我有了節點,我就會很好。
我的研究至今:
這裏的問題問:MATLAB functions in C++產生了密切的答案,但遺憾的是該建議是不是免費的(SciMath)。
我已經嘗試瞭解通用映射工具中使用的插值函數,並獲得頭痛的獎勵。
我簡要介紹了網格算法庫(GrAL)。如果有人有評論,我將不勝感激。
Eigen有一個不受支持的插值軟件包,但它似乎只是曲線(不是曲面)。
編輯:VTK具有matplotlib功能。據推測,爲了顯示目的,必須在某處使用插值。有誰知道這是否可以訪問和使用?
謝謝。
你看過freemat嗎? – PopcornKing
我沒有 - 這不是我正在尋找的東西,但它非常接近。謝謝! –
啊,不幸的是,事實證明griddata/interp2/etc沒有在FreeMat中實現。很近! –