Matlab 为阵列2的每一行计算阵列1的一行之间的距离,然后移动到阵列1的下一行并重复
我试图找出两个位置列表之间的距离(lat,long)。 我把它们都存储在不同的数组中:lat1,lon1,lat2,lon2。第一组是我正在读取的gps系统数据,第二组是参考数据。它们都有1000多行 我想做的是。 计算lat2、lon2所有点的lat1、lon1之间的距离 然后移动到lat1,lon1的第二行,再次计算lat2,lon2的所有行 并不断重复 因此,应针对lat2,lon2的每个点执行lat1,lon1的每个计算Matlab 为阵列2的每一行计算阵列1的一行之间的距离,然后移动到阵列1的下一行并重复,matlab,gps,distance,Matlab,Gps,Distance,我试图找出两个位置列表之间的距离(lat,long)。 我把它们都存储在不同的数组中:lat1,lon1,lat2,lon2。第一组是我正在读取的gps系统数据,第二组是参考数据。它们都有1000多行 我想做的是。 计算lat2、lon2所有点的lat1、lon1之间的距离 然后移动到lat1,lon1的第二行,再次计算lat2,lon2的所有行 并不断重复 因此,应针对lat2,lon2的每个点执行lat1,lon1的每个计算 最后,我必须根据输出距离做出决定,希望您有统计工具箱,因为这样您就
最后,我必须根据输出距离做出决定,希望您有统计工具箱,因为这样您就可以使用
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