2012-04-09 36 views
2

我有兩個矩陣A和B.每個矩陣都有2列,其座標爲(x , y)計算2個矩陣的最近點的映射

我需要計算一個mapping of points from A to B,這樣點之間的歐氏距離最小。

基本上我試圖效仿篩選不上的圖像,但不會進行篩選是不匹配的分步...

因此,對於A的所有點,我計算了所有點的歐氏距離在B中,然後移除距離最近的2個點的映射。然後我繼續這樣做直到A和B都是空的。

有人能告訴我什麼可能是最有效的方式嗎?

編輯

有人可以幫我......我現在面臨的問題是,我需要選擇最小他們作爲第一映射之前計算所有V/S的所有距離。然後我需要再次做這個使計算真的很長...

有沒有什麼辦法可以在MATLAB中有效地完成?

+0

我以前問過非常類似的問題。唯一的區別 - 我有載體,你有矩陣。無論如何,解決方案應該非常相似。看看:[映射2矢量 - 幫助矢量化](http://stackoverflow.com/q/2142826/163080) – yuk 2012-04-09 21:55:10

+0

@yuk這是我想要的...但數據並未排序,因此它們是矩陣....那麼有人可以建議是否可以有內置或更快的解決方案? – anon 2012-04-09 22:23:06

回答

0

你指的是兩個不同配置點之間的Procrustes距離嗎?如果是這樣,Matlab有一個內置的函數,可以計算最小范數轉換,使得點進行對齊(這是Procrustes距離)。

請參閱this documentation瞭解如何使用它。如果你沒有統計工具箱,那麼你應該首先檢查Matlab Central File Exchange,看看是否有人在編寫你自己的程序之前編寫了一個非工具箱版本的procrustes()函數。