我在2d平面上有一組點(x,y)。給定一個點(x0,y0)和數k,如何找到點集中(x0,x0)的第k個最近鄰點。詳細地說,點集由兩個數組表示:x和y。點(x0,y0)由索引i0給出。它意味着x0 = x(i0)和y0 = y(i0)。如何找到一組點中第k個點的最近鄰點
是否有任何功能或Matlab的東西可以幫助我解決這個問題。如果Matlab沒有這樣的功能,你能否提出其他有效的方法。
編輯:我必須爲集合中的每個點(x0,y0)計算這種距離。該集合的大小約爲1000. k的值應大約爲sqrt(1500)。最糟糕的是我做了很多次。在每次迭代中,設置發生變化,然後再次計算距離。所以,運行時間是一個關鍵問題。
是的。我會爲這組中的每一點做到這一點。所以,某種距離表有助於節省運行時間。我將發現squareform函數在我的問題中如何工作。非常感謝你。 – 2012-02-23 03:34:39
其實函數是pdist,squareform只是使pdist的向量輸出 – zamazalotta 2012-02-23 06:51:19
出一個方陣,謝謝zamazalotta。我知道了。 – 2012-02-23 07:24:55