我有一个固定点和随机生成用户位置的网格。
每个点和用户的距离都是从轴0.0的起点开始测量的。我想将每个用户与最近的固定点相关联。我计算两个距离向量,每个用户的最小值指向最近的固定点。
但我仍然坚持寻找一种有效的方法,因此每个固定点和相关用户在情节中都有相同的东西,例如。相同的颜色和颜色区域。
所以我的问题是二维的:
谢谢。
答案 0 :(得分:1)
对于点搜索,我会使用dsearchn
来做这种事情。根据用户与固定站点的比例,您可以使用或不使用delaunay三角测量。我倾向于使用它快速简便的方法,在你的情况下将是:
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);
答案 1 :(得分:0)
要查找最近的点,只需计算每个user
点与完整fixed
点之间的欧氏距离。那么最短距离的索引也将是fixed
点的索引。
dist = calc_dist(fixedPts, aSingleUserPt)
[~, idx] = min(dist);
要解决颜色问题,您需要创建从fixed
点索引到唯一颜色的色彩映射。然后,当您plot
用户点时,您将设置的图表颜色等于idx
处评估的色彩图
注意欧洲距离很容易计算:
euc_dist = sqrt( (x1 - x2)^2 + (y1 - y2)^2 );
有functions on File Exchange可让您快速计算出来。