• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-20
  • 语言: 其他
  • 标签: 社区划分  

资源简介

能够运行 划分的很清楚 输出为聚类图

资源截图

代码片段和文件信息

clear all
close all
clc

% load preprocess.mat
% E=e;
E=load(‘Zachary-E.txt‘);
% E(find(E>0))=1;%建立邻接矩阵
tic;
e=E;
e(e==1)=1/156;
a=sum(e);
n=34;
b=[1:n];
b=num2cell(b);%用来存储社团元素的变量
c={};
k=1;
while length(e)>1
lg=length(e);
detaQ=-(10^9)*ones(n-k+1);%△Q
for i=1:lg-1
    for j=i+1:lg
        if e(ij)~=0
            detaQ(ij)=2*(e(ij)-a(i)*a(j));%计算△Q
        end
    end
end
if sum(detaQ+(10^9))==0
    break
end
% Q(k)=max(detaQ(:));%寻找△Q的最大值,并把它存储进Q(k)矩阵
%-----------------------------寻找最大△Q对应的两个社团,并将其合并,并改变e矩阵
[IJ]=find(detaQ==max(detaQ(:)));

for ii=1:length(I)
e(J(ii):)=e(I(ii):)+e(J(ii):);
e(I(ii):)=0;
e(:J(ii))=e(:I(ii))+e(:J(ii));
e(:I(ii))=0;

% e(II)=e(II)/2;
%—————————记录△Q最大所对应的社团以及各社团中的元素

b{J(ii)}=[b{I(ii)} b{J(ii)}];
b{I(ii)}=0;
end

e(I:)=[];
e(:I)=[];
b(I)=[];
c(k:)=num2cell(zeros(1n));
c(k1:length(b))=b;
for kk=1:length(b)
    c2=cell2mat(c(kkk));
    c2(c2==0)=[];
    c{kkk}=c2;
    c2=[];
end
a=sum(e);
k=k+1;
tmp=0;
for jj=1:length(e)
    tmp=tmp+(e(jjjj)-a(jj)*a(jj));
end
Q(k)=tmp;
end
max_k=find(Q==max(Q(:)));

ll=0;
for i=1:length(c(max_k:))
    if sum(c{max_ki})~=0
        ll=ll+1;
        c{max_ki}=c{max_ki}(c{max_ki}~=0);
    end
end
c_newman=c(max_k1:ll)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2380  2010-08-17 18:26  Zachary-E.txt

     文件       1387  2011-03-28 10:45  Newman_Zachary.m

----------- ---------  ---------- -----  ----

                 3767                    2


评论

共有 条评论

相关资源