function D=G2D(G) %邻接矩阵就是每个栅格之间的距离 [m,n]=size(G); %返回矩阵G的尺寸 并将行返回到m中,列返回到n中 D=zeros(N,N); %生成一个n*n的0矩阵 x1=ceil(Dx/n);%返回不小于x的最小整数值 elseif (G(x1,y1)==1) || (G(x2,y2)==1); if (Dy-Dx==1) || (Dy-Dx==n) if (Dy-Dx==1) || (Dx-Dy==n) if (Dy-Dx==1) || (Dy-Dx==n) || (Dx-Dy==n) elseif (Dx-Dy==n-1) || (Dy-Dx==n+1) if (Dx-Dy==1) || (Dy-Dx==n) if (Dx-Dy==1) || (Dy-Dx==n) if (Dx-Dy==1) || (Dy-Dx==n) || (Dx-Dy==n) elseif (Dy-Dx==n-1) || (Dx-Dy==n+1) if (Dx-Dy==1) || (Dy-Dx==1) || (Dy-Dx==n) || (Dx-Dy==n) elseif (Dx-Dy==n+1) || (Dy-Dx==n+1) || (Dy-Dx==n-1) || (Dx-Dy==n-1)
传入0/1矩阵形式的栅格地图(如下图中的[1 0 0;0 0 0;0 0 0]矩阵<右图,黑色为障碍物1>),将其转换为如下图所示的邻接矩阵,1表示障碍物,不可达;0表示没有被占据,可以通过。则1号与所有元素都不可达为inf,并且将自身与自身也设为不可达:
其在蚁群算法路径规划中的应用可参考https://blog.csdn.net/KantsWang/article/details/83753515
代码均为他人代码,只作学习参考之用。
|