1

固定点とランダムに生成されたユーザーの位置を持つグリッドがあります。

各ポイントとユーザーの距離は、軸 0.0 の先頭から測定されます。各ユーザーを最も近い固定点に関連付けたい。私は両方の距離ベクトルを計算し、ユーザーごとのそれらの最小値は最も近い固定点を指しています。

しかし、私は作業方法を見つけることに固執しているので、各固定点と関連するユーザーは、プロット、同じ色、および色の領域で同じものを持っています。

だから私の問題は二次元です:

  1. 最初は、各ユーザーを最も近い固定点に関連付けることを管理することです
  2. 結果に色を付ける方法。

ありがとうございました。

4

2 に答える 2

1

ポイント検索ではdsearchn、このようなことに使用します。ユーザーと固定サイトの比率に応じて、ドロネー三角測量の有無にかかわらず使用できます。私はそれをすばやく簡単な方法で使用する傾向があります。あなたの場合は次のようになります。

indices_of_closest_fixed_points = dsearchn(fixed_points, user_points)

色に関しては、次のようなものを使用してカラーマップを定義することをお勧めします

mymap = lines(n) 

どこでnあなたが持っている固定点の数です。を使用scatterして、特定の色とサイズでポイントをプロットできます。おそらく、次のようなものから始めることができます。

x = user_points(1,:); 
y = user_points(2,:);
S = []; % point sizes, left empty for now
C = mymap(indices_of_closest_fixed_points,:); %colors

scatter(x,y,S,C);
于 2012-10-24T21:27:33.117 に答える
0

user最も近い点を見つけるには、各点と点の完全なセットの間のユークリッド距離を計算するだけfixedです。すると、最短距離のインデックスもfixedポイントのインデックスになります。

dist = calc_dist(fixedPts, aSingleUserPt)
[~, idx] = min(dist); 

fixed色の問題を解決するには、ポイント インデックスから一意の色へのカラーマップを作成する必要があります。次にplot、ユーザーポイントを指定すると、プロットの色がで評価されたカラーマップに等しく設定されますidx

ユークリッド距離は非常に簡単に計算できることに注意してください。

euc_dist = sqrt( (x1 - x2)^2 + (y1 - y2)^2 );

これをすばやく計算できるFile Exchange の関数があります。

于 2012-10-24T21:09:29.973 に答える