我将在一个大图中有效地找到长度为4的所有循环。我有以下代码用于此目的,但效率不高。
[rows, cols, s] = find(Mystructure);
for i = 1:size(cols,1)
a = rows(i);
b = cols(i);
C=cols(find(rows==b));
for j=1:size(C)
c=C(j);
D=cols(find(and(rows==c, rows~=a)));
for k=1:size(D)
d=D(k);
if(d~=a && d~=b)
if(find(and(rows==d, cols==a)))
FourStructure=[FourStructure;a b c d] ;
end
end
end
end
end
Mystructure是一个表示我的图形的稀疏矩阵。当且仅当i,j连接时,Mystructure(i,j)才是一个。