为数组 2 的每一行计算数组 1 的一行之间的距离,然后移动到数组 1 的下一行并重复
Posted
技术标签:
【中文标题】为数组 2 的每一行计算数组 1 的一行之间的距离,然后移动到数组 1 的下一行并重复【英文标题】:Distance calculated between one row of array 1 for every row of array 2 then move on to next row of array 1 and repeat 【发布时间】:2014-03-16 10:23:56 【问题描述】:我正在尝试找出两个位置列表(纬度、经度)之间的距离。 我将它们全部存储在单独的数组 lat1、lon1、lat2、lon2 中。第一组是我正在阅读的 gps 系统,第二组是参考。它们都有超过 1000 行。
我想做的是。 计算 lat2, lon2 的所有点的 lat1, lon1 之间的距离 然后移动到 lat1, lon1 的第二行再次计算 lat2, lon2 的所有行 并不断重复。
因此,lat1, lon1 的每次计算都应该针对 lat2, lon2 的每个点进行。
我最终必须根据输出距离 做出决定
请有人帮忙。真的很感激。
【问题讨论】:
【参考方案1】:希望你有统计工具箱,因为这样你就可以使用 pdist2
来做这件事:
pdist2([lat1, lon1], [lat2, lon2])
如果您没有统计工具箱:
%// Simple example data
a = [0, 0; 0, 1; 1, 1];
b = [0, 0; 0, 1; 1, 1];
n = size(a,1);
[X, Y] = ndgrid(1:n,1:n)
dist = sqrt(sum((a(X(:),:) - b(Y(:),:)).^ 2, 2))
reshape(dist, n, n)
结果(正确):
ans =
0.00000 1.00000 1.41421
1.00000 0.00000 1.00000
1.41421 1.00000 0.00000
【讨论】:
感谢您这么快回来。其实我没有统计工具箱。有没有其他方法可以绕过它? 非常感谢。您一直非常乐于助人……为此苦苦挣扎了这么久。谢谢!以上是关于为数组 2 的每一行计算数组 1 的一行之间的距离,然后移动到数组 1 的下一行并重复的主要内容,如果未能解决你的问题,请参考以下文章