查看: 222|回复: 8|关注: 0

[已解决] 如何计算元胞A中每一元素与元胞B中每一元素之间的距离

[复制链接]

新手

12 麦片

财富积分


050


5

主题

15

帖子

0

最佳答案
本帖最后由 youngstar 于 2018-11-6 22:18 编辑

RT
已知元胞A的维度为m1*n1,元胞B的维度为m2*n2, 元胞中的每个元素都是一个三维坐标向量
求问如何计算元胞A中每一元素与元胞B中每一元素之间的距离
生成一个(m1*n1)行、(m2*n2)列的距离矩阵
求问有没有不用循环、效率高的方法

论坛优秀回答者

专家

2636 麦片

财富积分


20003000


4

主题

4972

帖子

586

最佳答案
  • 关注者: 622
发表于 2018-11-6 21:14:04 | 显示全部楼层 |此回复为最佳答案
  1. [X,Y]=meshgrid(reshape(A,[],1),reshape(B,[],1));
  2. Dist=abs(X-Y);
复制代码

写了一个我比较熟悉的,然后软件推荐的是pdist2函数,你可以看下帮助自行尝试

新手

12 麦片

财富积分


050


5

主题

15

帖子

0

最佳答案
 楼主| 发表于 2018-11-6 22:04:50 | 显示全部楼层
halleyhit 发表于 2018-11-6 21:14
写了一个我比较熟悉的,然后软件推荐的是pdist2函数,你可以看下帮助自行尝试 ...

感谢,马上试试

新手

12 麦片

财富积分


050


5

主题

15

帖子

0

最佳答案
 楼主| 发表于 2018-11-6 22:16:51 | 显示全部楼层
halleyhit 发表于 2018-11-6 21:14
写了一个我比较熟悉的,然后软件推荐的是pdist2函数,你可以看下帮助自行尝试 ...

不好意思,我表述地有些问题。其实A和B应该是两个cell,cell中的每个元素是一个三维坐标向量,我想计算的是坐标的距离,请问这样该如何实现?

论坛优秀回答者

专家

2636 麦片

财富积分


20003000


4

主题

4972

帖子

586

最佳答案
  • 关注者: 622
发表于 2018-11-6 22:33:57 | 显示全部楼层
本帖最后由 halleyhit 于 2018-11-6 22:35 编辑
youngstar 发表于 2018-11-6 22:16
不好意思,我表述地有些问题。其实A和B应该是两个cell,cell中的每个元素是一个三维坐标向量,我想计算的 ...

先用cell2mat函数转一下?另外,三维坐标的话,就只能用那个pdist2函数了。。。

新手

12 麦片

财富积分


050


5

主题

15

帖子

0

最佳答案
 楼主| 发表于 2018-11-6 23:01:09 | 显示全部楼层
halleyhit 发表于 2018-11-6 22:33
先用cell2mat函数转一下?另外,三维坐标的话,就只能用那个pdist2函数了。。。 ...

先用cell2mat转一下,然后用pdist2 ?
但是pdist2好像要求两个矩阵的列数相等

论坛优秀回答者

专家

2636 麦片

财富积分


20003000


4

主题

4972

帖子

586

最佳答案
  • 关注者: 622
发表于 2018-11-7 00:31:56 | 显示全部楼层
youngstar 发表于 2018-11-6 23:01
先用cell2mat转一下,然后用pdist2 ?
但是pdist2好像要求两个矩阵的列数相等

哦,忘记了,reshape的过程还是不能省
列数相等是当然的,否则哪里有距离的概念呀

新手

12 麦片

财富积分


050


5

主题

15

帖子

0

最佳答案
 楼主| 发表于 2018-11-7 09:42:47 | 显示全部楼层
halleyhit 发表于 2018-11-7 00:31
哦,忘记了,reshape的过程还是不能省
列数相等是当然的,否则哪里有距离的概念呀 ...

不,我这里说的距离就是指两元素的坐标距离

新手

12 麦片

财富积分


050


5

主题

15

帖子

0

最佳答案
 楼主| 发表于 2018-11-7 13:07:21 | 显示全部楼层
halleyhit 发表于 2018-11-6 21:14
写了一个我比较熟悉的,然后软件推荐的是pdist2函数,你可以看下帮助自行尝试 ...

感谢指点,已解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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