看板 MATLAB 關於我們 聯絡資訊
我在二維空間中有許多資料散布點 x和y 以及速度(u,v) 我想要用這些取樣點對整個空間做內插 我是用三角型的內插 triscatteredinterp (griddata的結果好像是一樣的?) matlab都會用convhull的概念 對凸多邊形進行內插 但其實我的取樣點應該是concave polygon 目前我的做法是這樣 先不管上述情況 先內插出整個空間的u和v 然後把所有的delaunay檢查一遍把不合理的三角型去掉 接著把坐標不在所有三角形中的點的 u v 令為nan 可是這樣一來程式執行的速度太慢了 已經跑了兩個小時還沒完.... 感覺很沒效率 想問問看有沒有更好的想法 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.230.188
sunev:用for就沒救了 06/08 16:12
nbalife:我的確是用for.... 06/08 16:31
sunev:我看到 "把所有的xxxx檢查一遍" 就知道了...:P 06/08 17:12
nbalife:因為我無法建立concave polygon的邊界 06/08 17:17
nbalife:所以只能一個一個三角形看 06/08 17:18
sunev:所以你想做這件事? 06/08 17:36
sunev:http://0rz.tw/LhdT1 ? 06/08 17:37
nbalife:是有點像 但是他的形狀比較簡單 頂點數很好決定 06/08 17:39
nbalife:我的點是散佈的 我目前是把任一邊長太大的三角形刪去 06/08 17:40
YoursEver:constrained Delaunay triangulation? 06/09 06:08
YoursEver:如果是CDT的話,你該作的事情是先把boundary定義好, 06/09 06:08
YoursEver:接下來再去run CDT. 06/09 06:08
YoursEver:如果是想先作delaunay再去刪除不合理的三角型,那麼, 06/09 06:09
YoursEver:"重新補三角型"會比你現在作"檢查"這件事更要命. 06/09 06:10
YoursEver:再來,如果是想靠simplex來作interpolation,這部分應該是 06/09 06:12
YoursEver:和三角型是否過於狹長無關. 06/09 06:12