网络到距离矩阵的邻接矩阵(Two -Hop)

时间:2016-03-17 06:51:35

标签: matlab adjacency-matrix

我有以下代码用于为网络生成邻接矩阵。 如何从此输出创建距离矩阵(可能是两跳矩阵)。

function  adj = AdjMatrixLattice4( N, M )
    % Size of adjacency matrix
    MN = M*N;
    adj = zeros(MN,MN);

      for i=1:N
        for j=1:N
            A = M*(i-1)+j;          %Node # for (i,j) node
            if(j<N)                
                B = M*(i-1)+j+1;    %Node # for node to the right
                C = M*(i-1)+j+2;
                D = M*(i-1)+j+2;
                adj(A,B) = 1;
                adj(B,A) = 1;
                adj(A,C) = 1;
                adj(C,A) = 1;
                adj(A,D) = 1;
                adj(D,A) = 1;
            end
            if(i<M)
                B = M*i+j;  
                C = M*i+j+1;    %Node # for node below
                D = M*i+j;
                adj(A,B) = 1;       
                adj(B,A) = 1;
                adj(A,C) = 1;
                adj(C,A) = 1;
                adj(A,D) = 1;
                adj(D,A) = 1;
            end            
        end
    end    
end

以下程序的输出是

  
    

AdjMatrixLattice4(3,3)

  

ans =

 0     1     1     1     1     0     0     0     0     0
 1     0     1     1     1     1     0     0     0     0
 1     1     0     0     0     1     1     0     0     0
 1     1     0     0     1     1     1     1     0     0
 1     1     0     1     0     1     1     1     1     0
 0     1     1     1     1     0     0     0     1     1
 0     0     1     1     1     0     0     1     1     0
 0     0     0     1     1     0     1     0     1     1
 0     0     0     0     1     1     1     1     0     0
 0     0     0     0     0     1     0     1     0     0

0 个答案:

没有答案
相关问题