資源簡(jiǎn)介
能夠運(yùn)行 劃分的很清楚 輸出為聚類圖

代碼片段和文件信息
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);%用來存儲(chǔ)社團(tuán)元素的變量
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));%計(jì)算△Q
????????end
????end
end
if?sum(detaQ+(10^9))==0
????break
end
%?Q(k)=max(detaQ(:));%尋找△Q的最大值,并把它存儲(chǔ)進(jìn)Q(k)矩陣
%-----------------------------尋找最大△Q對(duì)應(yīng)的兩個(gè)社團(tuán),并將其合并,并改變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最大所對(duì)應(yīng)的社團(tuán)以及各社團(tuán)中的元素
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)
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????2380??2010-08-17?18:26??Zachary-E.txt
?????文件???????1387??2011-03-28?10:45??Newman_Zachary.m
-----------?---------??----------?-----??----
?????????????????3767????????????????????2
評(píng)論
共有 條評(píng)論