查看: 183|回复: 3|关注: 0

[已解决] 求由三维点表示的路径的欧式距离

[复制链接]

新手

16 麦片

财富积分


050


6

主题

12

帖子

0

最佳答案
有两个路径,这两个路径的路径点由(x1,y1,z1)这样的三维坐标表示,现在想计算两个路径的欧式距离。举个例子,我是用元胞数组存放路径的:

P={(5,10,6),(8,12,8),(14,9,12),(20,21,5)}
R={(7,9,8),(12,9,10),(5,8,7),(13,10,20)}
求P,R 这两条路径间的欧式距离
我知道 pdist函数,可是它求得是这种(2,3,1)这种向量。
路径的距离怎么求呢?
回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

598 麦片

财富积分


5001500


24

主题

320

帖子

68

最佳答案
  • 关注者: 11
发表于 2020-7-31 09:43:42 | 显示全部楼层 |此回复为最佳答案
本帖最后由 15631202458 于 2020-7-31 09:45 编辑

两条线的欧氏距离是怎么计算的,是对应点的距离吗?
如果是参考下面代码
空间点的欧氏距离其实就是模也叫二范数,参考norm,2范数表示空间距离。
  1. clear;
  2. P={[5,10,6],[8,12,8],[14,9,12],[20,21,5]};
  3. R={[7,9,8],[12,9,10],[5,8,7],[13,10,20]};
  4. Pm=reshape(cell2mat(P),3,[]);
  5. Rm=reshape(cell2mat(R),3,[]);
  6. dPR= vecnorm(Pm-Rm,2,1);
  7. plot3(Pm(1,:),Pm(2,:),Pm(3,:),'ro-')
  8. hold on
  9. plot3(Rm(1,:),Rm(2,:),Rm(3,:),'bo-')
  10. for i=1:length(dPR)
  11.    plot3([Pm(1,i),Rm(1,i)],[Pm(2,i),Rm(2,i)],[Pm(3,i),Rm(3,i)],'k-','LineWidth',3)
  12.    text(mean([Pm(1,i),Rm(1,i)]),mean([Pm(2,i),Rm(2,i)]),mean([Pm(3,i),Rm(3,i)]),strcat('\leftarrow ',num2str(dPR(i))))
  13. end
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

16 麦片

财富积分


050


6

主题

12

帖子

0

最佳答案
 楼主| 发表于 2020-7-31 11:30:54 | 显示全部楼层
15631202458 发表于 2020-7-31 09:43
两条线的欧氏距离是怎么计算的,是对应点的距离吗?
如果是参考下面代码
空间点的欧氏距离其实就是模也叫二 ...

谢谢你详尽的解答,但是我的理解和你有点出入,我的理解是,两个路径的距离应该是一个值,对两条路径的每一个对应的点求欧式距离,再对所有的距离求和,来表示两条路径之间的距离。这是我自己想的。我看的论文里对这一块也没有细说,所以写代码的时候不知道怎么处理了。但是你的代码对我帮助很大,谢谢。
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

598 麦片

财富积分


5001500


24

主题

320

帖子

68

最佳答案
  • 关注者: 11
发表于 2020-7-31 11:38:44 | 显示全部楼层
gwb123 发表于 2020-7-31 11:30
谢谢你详尽的解答,但是我的理解和你有点出入,我的理解是,两个路径的距离应该是一个值,对两条路径的每 ...

那么sum(dPR)不就是所有的距离求和吗?应该好好找找两个曲线的距离这块没这么简单,如果曲线的点不一样多,就没法对应。
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表