24小时热门版块排行榜    

查看: 6353  |  回复: 1

木之枝

铜虫 (小有名气)

[求助] 已知各点二维坐标,求各点之间的距离

已知点1(x1,y1)、2(x2,y2)、3(x3,y3)、4(x4,y4)......等多个点的   二维平面几何坐标 ,现求各点之间(如 点1与2、1与3、1与4;  2与3、2与4;    3与4.......)的距离(长度)。

由于本人MATLAB初学,只知道求距离的公式是sqrt((x2-x1)^2+(y2-y1)^2(如点1与点2),但是编写   循环的计算步骤  不会啊。

希望得到各位虫友的帮助!感激不已!!!谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
木之枝: 金币+10, ★★★★★最佳答案, 谢谢!!!呵呵,又是你的帮忙啊!厉害啊!!!好用。试过了 2013-10-16 09:08:22
matlab已经有了内置函数实现这个功能,不需要用循环
将你的二维点保存为一个矩阵,每一行是一个点的(x,y),然后直接用函数可以得到一个距离矩阵(对称的),其中mat(i,j)就是第i个点到第j个点的距离,mat(i,j)=mat(j,i)
测试代码如下:
CODE:
a = [0,0;
    1,1;
    2,2];
mat_dist = squareform(pdist(a))

结果:
CODE:
mat_dist =

         0    1.4142    2.8284
    1.4142         0    1.4142
    2.8284    1.4142         0

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2013-10-15 22:52:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 木之枝 的主题更新
信息提示
请填处理意见