DΘstinyじò 发表于 2020-12-13 13:23 
示例中您说原来的表格12行4列→调整后3行7列,只是将A堆砌,标识变量ID、ID2失去了作用;
后面您说ID和 ...
我是先利用gis得到了6600个点的经纬度坐标,导出表以后,再用matlab做的
x=[] %x为纬度,按列粘贴
y=[] %y为经度,按列粘贴
A=[x y]
for i=1:6600
for j=1:6600
B(i,j)=distance(A(i,1),A(i,2),A(j,1),A(j,2)); %根据经纬度计算地点间的距离,主要应用distance函数,详细可以百度
end
end
%B算出来的单位是度。换算成距离的话,需要再乘以Pi/180再乘以6378.2,单位为千米。(此处将地球当做一个球体,半径为6378.2千米)
C=B*pi/180*6378.2 %C即为地点间地理距离矩阵,单位为千米
D=1./C %D的元素为距离的倒数。即距离数值越小,倒数后构成的权重越大;反之亦然。
D(D==inf)=0 %当矩阵元素为无限大时,将其变为0
%以下行标准化
E=sum(D,2) %计算各行之和
F=repmat(E,1,6600) %主要应用repmat函数
W=D./F %W即为行标准化后的地理距离空间权重矩阵