function D=G2D(G) %邻接矩阵就是每个栅格之间的距离
[m,n]=size(G); %返回矩阵G的尺寸 并将行返回到m中,列返回到n中
N=m*n; %元素个数
D=zeros(N,N); %生成一个n*n的0矩阵
for Dx=1:N
for Dy=Dx:N
x1=ceil(Dx/n);%返回不小于x的最小整数值
y1=mod(Dx,n); %Dx对n取余
if y1==0
y1=n;
end
x2=ceil(Dy/n);
y2=mod(Dy,n);
if y2==0
y2=n;
end
if Dx==Dy
D(Dx,Dy)=inf;
elseif (G(x1,y1)==1) || (G(x2,y2)==1);
D(Dx,Dy)=inf;
else
if (mod(Dx,n) ==1)
if(Dx==1)
if (Dy-Dx==1) || (Dy-Dx==n)
D(Dx,Dy)=1;
elseif (Dy-Dx==n+1)
D(Dx,Dy)=sqrt(2);
else
D(Dx,Dy)=inf;
end
matlab:栅格地图转化为邻接矩阵
最新推荐文章于 2025-03-30 10:39:06 发布