对于阵列2的每一行,在阵列1的一行之间计算的距离然后移动到阵列1的下一行并重复

时间:2014-02-17 08:05:40

标签: matlab gps distance

我试图找出两个位置列表之间的距离(lat,long)。 我将它们全部存储在单独的数组lat1,lon1,lat2,lon2中。第一组是我正在阅读的gps系统,第二组是参考。它们都有超过1000行。

我想做的是。 计算lat2,lon2的所有点的lat1,lon1之间的距离 然后移动到lat1的第2行,lon1再次计算lat2,lon2的所有行 并继续重复。

因此,应对lat2,lon2的每个点执行lat1,lon1的每个计算。

我必须最终根据输出距离<4

做出决定

请有人帮忙解决这个问题。真的很感激。

1 个答案:

答案 0 :(得分: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