【问题标题】:Matrix of distances between data in 2d Matlab二维 Matlab 中数据之间的距离矩阵
【发布时间】:2017-09-10 10:52:10
【问题描述】:

我有四个1-by-n 矩阵。前两个矩阵表示n 点在2D 平面中的位置(位置的x 和y 分量)。后两个矩阵表示另一个n 点在2D 平面中的位置。

我想创建一个n-by-n 矩阵(比如M),其中M(i,j) 是第一个矩阵中的点i 和第二个矩阵中的点j 之间的距离。

有人可以帮忙吗?任何答案都非常感谢。

  • n 是一个很大的数字,所以我正在寻找一种有效的方法

【问题讨论】:

    标签: arrays matlab matrix


    【解决方案1】:

    另一种方法是使用bsxfun 手动计算距离:

    M = sqrt(bsxfun(@minus, x1(:), x2(:).').^2 + bsxfun(@minus, y1(:), y2(:).').^2);
    

    【讨论】:

      【解决方案2】:

      您可以使用pdist2 来做到这一点(请参阅documentation):

      x1=[1,2,3,4,5];
      y1=[6,7,8,9,10];
      x2=[1,1,1,1,2];
      y2=[8,3,1,2,3];
      mat1=[x1',y1'];
      mat2=[x2',y2'];
      M = pdist2(mat1,mat2)
      

      【讨论】:

        猜你喜欢
        • 2016-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-08
        • 1970-01-01
        • 2022-11-21
        • 2011-07-28
        • 2021-06-17
        相关资源
        最近更新 更多