1

m-propertiesによるn要素の配列があります。id1 x1 y1 id2 x2 y2 ... idn xn yn

座標(x、y)があり、(x、y)のすぐ左、上、下、下にある要素のすべてのIDを検索したい、つまり(x-1、y)、(x 、y + 1)、(x + 1、y)、(x、y-1)。

どうすればこれをすばやく行うことができますか?

4

2 に答える 2

0

座標 (関心のあるものを除く) が X (1 xn) と Y (1 xn) にあるとします。

1 - すべての座標までのユークリッド距離を計算します。

D = sqrt((X - x).^2 + (Y - y).^2));

2 - 距離ベクトル D を並べ替えて、ユークリッド距離が最小である 4 つの座標を見つけます。

[M idx] = sort(D);

3- 最も近い点の座標を取得する

X(idx(1:4))
Y(idx(1:4))

それが動作するかどうかを確認してください...

于 2013-01-22T19:09:46.667 に答える
0

@ Oliver: 興味深い点を囲む円の同じ四分の一にあるすべての隣人を mag が取得するので、うまくいかないと思います。

私の意見では、より良い解決策は、各興味深い点の周りのゾーンを 4 つのゾーン (dX ポジティブ、dX ネガティブ、dY ポジティブ、および dY ネガティブ (dX、dY カップルの 4 つの組み合わせ) で異なります) に分割することです。各ゾーンでは、最小のユークリッド差を見つける必要がありました。

于 2013-01-22T21:58:57.090 に答える