我想做一个while
循环,嵌套在for
在 Matlab 中循环以查找数据中不同对之间的距离。我的数据具有以下形式
ID lon lat time
1 33.56 40.89 803
2 32.45 41.03 803
3 35.78 39.85 803
2 33.04 40.21 804
3 36.89 40.23 804
2 33.98 39.33 806
2 33.67 39.73 809
3 37.02 40.77 809
lon
and lat
是地理坐标。在里面for
循环,我想从矩阵中取出第一行,然后在while
循环检查所有其他行并计算各对之间的距离,只要条件满足while
is true
。我的意思是,对于第一行,我希望程序计算时间 803 处的 1-2、1-3 对之间的距离,然后再次计算时间 803 处的距离 1-2、1-3。当我增加步骤时for
再次循环 1,程序应在 803 处计算 2-3 对之间的距离,然后在 804 处计算 2-3 对之间的距离,依此类推。为此,我写了for
循环如下:
for ii = 1:length(MM(:,4))
t = MM(ii,4);
ind1 = ii;
length(ind1);
lat1 = lat(ind1);
lon1 = lon(ind1);
jj = ii +1;
while (t <= (MM(ii,4)+5))
for jj = 2:length(MM(:,4))
ind2 = jj;
length(ind2);
lat2 = lat(ind2);
lon2 = lon(ind2);
w = MM(jj,4);
end
dis = distance(lat1, lon1, lat2, lon2);
t = t + 1;
end
if dis <= 1
[contact] = [ind1, ind2, t, w];
end
end
有了这个for
循环我得到无限while
环形。我的问题是为什么我会得到这个无限while
循环以及我应该如何使其按照我所描述的方式工作?