转自文章:模块度(Modularity)与Fast Newman算法讲解与代码实现
Matlab
% Matlab
A = [0,1,1;1,0,0;1,0,0]; %邻接矩阵定义,与上面的例子是一致的
S = [0,1;1,0;0,1]; %label定义
m = sum(sum(A))/2;
k = sum(A,2);
B = A - (repmat(k,[1,size(A,1)]) .* repmat(k',[size(A,1),1])) / (2*m);
Q = 1/(2*m) .* trace(S'*B*S);
Python版本也能够简单实现,也可使用igraph包的模块度。
我也将其拓展到了符号网络模块度QS(矩阵方法)