全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5306 7
2014-06-12
在R中,有若干个点,如何才能找到能够使两点间距离最大的那两个点呢?同时求出这个最大的距离。
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-6-12 16:09:06
假设有n个点,组成矩阵x,x为n*p(平面上点p=2),矩阵每行为一个点对应坐标,然后在R中运行
复制代码

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-13 09:32:16
非常感谢!可行。呵呵,您真强!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-20 15:55:58
danica33 发表于 2014-6-12 16:09
假设有n个点,组成矩阵x,x为n*p(平面上点p=2),矩阵每行为一个点对应坐标,然后在R中运行
这个问题,我遇到的比较复杂。对于平面只有少量数据,您的方法是可行的。
但是如果平面上点数异常多,比如10000组,您的方法在时间上将是低效的。
有没有算法能否快速给出最远点两点?
比如卡壳算法行否?
而我的图形是个类似椭圆(当然也是凸的),不是凸多边形。
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-20 16:34:37
peijianshi 发表于 2014-6-20 15:55
这个问题,我遇到的比较复杂。对于平面只有少量数据,您的方法是可行的。
但是如果平面上点数异常多,比 ...
问题真正解决啦!
哈哈,danica33的程序稍微做一点小改动就可以啦。
如果平面给出的点数太多,比如超过了1000,就是用sample函数从中只选择500个点,
这500个点就基本能代替上述超过1000个点,因为图形已经很密了(500点的作用)。
谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-6-20 18:09:48
danica33 发表于 2014-6-12 16:09
假设有n个点,组成矩阵x,x为n*p(平面上点p=2),矩阵每行为一个点对应坐标,然后在R中运行
你的程序有点问题,我录入下边的数据,发现不行:

> xx
         x.arti    y.arti
[1,] -21.46328 -34.24134
[2,]  12.88955  51.26954
[3,] -20.63382 -35.06097
[4,]  18.63710 -39.98070
[5,] -12.71097  49.22731
[6,]  35.01764  29.23238
[7,]  23.01237  44.55882
[8,]  32.03444 -26.17645
[9,]  25.46328 -34.24134
[10,]  41.40120  10.69226
> dis <- dist(xx)
> dis
           1         2         3         4         5         6         7
2  92.153289                                                            
3   1.166098 92.610872                                                  
4  40.509024 91.431076 39.577890                                       
5  83.926265 25.681848 84.659814 94.555644                              
6  84.964746 31.229619 85.033641 71.125050 51.747632                    
7  90.485080 12.145175 90.798135 84.652669 36.027097 19.468602         
8  54.102202 79.777240 53.412361 19.236580 87.680538 55.489075 71.308317
9  46.926564 86.430378 46.104393  8.918352 91.783922 64.188777 78.838271
10 77.272059 49.592644 77.082432 55.551353 66.430991 19.608313 38.536909
           8         9
2                     
3                     
4                     
5                     
6                     
7                     
8                     
9  10.403009         
10 38.039946 47.676465
> dim(dis)
NULL
>
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群