【问题标题】:Correct use of pdist in MatlabMatlab中pdist的正确使用
【发布时间】:2012-03-18 04:03:41
【问题描述】:

我有一个点云,我想计算 Matlab 中所有单个点之间的距离(最好不要重复)。

带有坐标的矩阵格式为:points [ p x n x d ]。其中p = 1(目前),n 与点数一样大,d 与维数一样大(在本例中为 3)。

这是我拥有的数据:

  • points(:,:,1) = 1 2 3
  • points(:,:,2) = 4 5 6
  • points(:,:,3) = 7 8 9

所以我在三个维度上有三个点。现在使用 pdist,我尝试使用 distances = pdist(points(:,1:3));distances = pdist(X(:,:,1:3)); 计算每个点之间的欧几里得距离,但两者都只返回一个空矩阵。

有谁知道如何使用pdist 来计算这些距离?它应该返回 3 个距离,而不是 0,但我一定是做错了什么。


顺便说一句。这个问题是this one 的后续问题。起初我在 cmets 中问过它,但认为它值得一个新问题,因为它是对原始问题的相当大的扩展。

【问题讨论】:

    标签: matlab image-processing geometry point-clouds


    【解决方案1】:

    试试

    distances = pdist(squeeze(X(:,:,1:3)));
    

    如果不正确,则转置squeeze(...)

    【讨论】:

      猜你喜欢
      • 2023-03-05
      • 2011-01-29
      • 2012-03-27
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      相关资源
      最近更新 更多