此问题与我之前的Matlab function to compute average neighbor degree
有关el = [2 1; 3 1;4 1;5 1;1 2 ]; %// edge list, I put only a tiny sample here...
n = max( el(:) ); %// number of nodes in the graph
A = sparse( el(:,1), el(:,2), 1, n, n ); % //sparse adjacency matrix
The neighbor degree of each node is the number of neighbors
nd = sum( A, 2 ); %// degree of each node
要计算平均邻居度,可以构建另一个稀疏矩阵,其中邻居度存储在每个条目
中 ndM = sparse( el(:,1), el(:,2), nd( el(:,2) ), n, n );
在上面的稀疏矩阵中,我理解它的功能。但是,我不明白 nd(el(:,2) 引发的输出
你能指点我的资源吗?
答案 0 :(得分:1)
没有资源可指向。这是为您的特定应用程序定制的代码。顺便说一句,你没有完成整个故事。要计算每个节点的平均度数,您需要执行以下操作:
av = full( sum( ndM, 2 ) ./ nd );
在任何情况下,el
都是您的边缘列表,其中第一列表示源节点,第二列是结束节点。 nd
表示每个节点的程度。因此,通过做:
nd(el(:,2))
因此,您现在正在创建一个新图形,其中对于每对节点,这将包含边缘列表中结束节点的程度,这是您应该执行的操作。
答案 1 :(得分:0)
实际上,我在上一篇文章中收到了答案,as nd( el(:,2) )
创建了一个所有相邻节点(nd)
度的向量(存储在el(:,2))
中
这是@Shai在这篇文章Matlab expression