A=importdata('/home/godl/Desktop/Dongyuan/Isolet.txt');
A(:,1)=[];
%计算相关系数的函数计算列与列之间的相关系数,所以需要做一下转置操作.
A=A';
W=corrcoef(A);
%因为把相关系数当做权重,则所有的负相关系数全部标为0,让它们代表之间没有连边
W(W<0)=0;
%因为h自身e不能够和hn自身连边所以处理掉对角线的数据
W=W-diag(diag(W));
[S,D]=adj2list(W);
S(:,3)=D;
dlmwrite('Isolet.edgelist',S,'precision',5,'delimiter',' ');
A2=importdata('/home/godl/Desktop/Dongyuan/TOX171.txt');
A2(:,1)=[];
%计算相关系数的函数计算列与列之间的相关系数,所以需要做一下转置操作.
A2=A2';
W2=corrcoef(A2);
%因为把相关系数当做权重,则所有的负相关系数全部标为0,让它们代表之间没有连边
W2(W2<0)=0;
%因为h自身e不能够和hn自身连边所以处理掉对角线的数据
W2=W2-diag(diag(W2));
[S2,D2]=adj2list(W2);
S2(:,3)=D2;
dlmwrite('TOX171.edgelist',S2,'precision',5,'delimiter',' ');
A3=importdata('/home/godl/Desktop/Dongyuan/Yale.txt');
A3(:,1)=[];
%计算相关系数的函数计算列与列之间的相关系数,所以需要做一下转置操作.
A3=A3';
W3=corrcoef(A3);
%因为把相关系数当做权重,则所有的负相关系数全部标为0,让它们代表之间没有连边
W3(W3<0)=0;
%因为h自身e不能够和hn自身连边所以处理掉对角线的数据
W3=W3-diag(diag(W3));
[S3,D3]=adj2list(W3);
S3(:,3)=D3;
dlmwrite('Yale.edgelist',S3,'precision',5,'delimiter',' ');
A4=importdata('/home/godl/Desktop/Dongyuan/BASEHOCK.txt');
A4(:,1)=[];
%计算相关系数的函数计算列与列之间的相关系数,所以需要做一下转置操作.
A4=A4';
W4=corrcoef(A4);
%因为把相关系数当做权重,则所有的负相关系数全部标为0,让它们代表之间没有连边
W4(W4<0)=0;
%因为h自身e不能够和hn自身连边所以处理掉对角线的数据
W4=W4-diag(diag(W4));
[S4,D4]=adj2list(W4);
S4(:,3)=D4;
dlmwrite('BASEHOCK.edgelist',S4,'precision',5,'delimiter',' ');
其中adj2list是我自己写的一个函数,目的是为了把邻接矩阵变成临接表形式,其中S矩阵代表的是无权重的临接表,其中D矩阵代表的是权重值
%把临接矩阵转换成临接表的形式
function [S,D]=adj2list(A)
n=size(A,1);
S=[];
D=[];
k=1;
for i=1:n
for j=1:n
if A(i,j)>0
S=[S;i,j];
A(j,i)=0;
D(k,1)=A(i,j);
k=k+1;
end
end
end
end