Matlab函数的功能

时间:2014-09-12 21:42:00

标签: matlab

此问题与我之前的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) 引发的输出

你能指点我的资源吗?

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

中给出的上述问题的解决方案