Matlab计算空间权重矩阵

如需转载,请注明来源,谢谢合作。
若本文对您有一点点的帮助,欢迎点赞、评论和关注。您的鼓励和支持是我继续学习和分享的动力。
可用以下数据进行验证https://pan.baidu.com/s/1kOv9l3SX-3OZ2vzpSPVr5Q(请关注作者,并在下方评论留下邮箱向作者获取密码)

代码块

%主要应用了matlab的distance函数。
%计算30个省区市行标准化后的地理空间权重矩阵 W。要计算别的,更改以下的30为对应数字即可
%{
选中下面两行,按F9快捷键新建纬度x和经度y矩阵
x=[] %x为纬度,按列粘贴
y=[] %y为经度,按列粘贴
%}
A=[x y]  
for i=1:30
    for j=1:30
        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==inf)=0  %当矩阵元素为无限大时,将其变为0
E=sum(D,2)  %计算各行之和
F=repmat(E,1,30)  %主要应用repmat函数
W=D./F   %W即为行标准化后的地理距离空间权重矩阵

猜你喜欢

转载自blog.csdn.net/wbj3106/article/details/81984530
今日推荐