Berechnung des durchschnittlichen Clustering-Koeffizienten eines Diagramms Ich bekomme korrekte Ergebnis, aber es dauert sehr viel Zeit, wenn die Grafikdimension erhöht sich einige alternative, so dass es weniger dauert Zeit zur Ausführung. Gibt es eine Möglichkeit, den Code zu vereinfachen?Gibt es den effizientesten Weg, Programm für Avg Clustering Coeff zu programmieren
%// A is adjacency matrix N X N,
%// d is degree ,
N=100;
d=10;
rand('state',0)
A = zeros(N,N);
kv=d*(d-1)/2;
%% Creating A matrix %%%
for i = 1:(d*N/2)
j = floor(N*rand)+1;
k = floor(N*rand)+1;
while (j==k)||(A(j,k)==1)
j = floor(N*rand)+1;
k = floor(N*rand)+1;
end
A(j,k)=1;
A(k,j)=1;
end
%% Calculation of clustering Coeff %%
for i=1:N
J=find(A(i,:));
et=0;
for ii=1:(size(J,2))-1
for jj=ii+1:size(J,2)
et=et+A(J(ii),J(jj));
end
end
Cv(i)=et/kv;
end
Avg_clustering_coeff=sum(Cv)/n;
Ausgabe ich bekam.
Avg_clustering_coeff = 0,1107
die Werte genommen ist N = 100 & d = 10 – RRK
Was ist 'A' dann? Könnten Sie bitte einige Beispielwerte zu der Frage hinzufügen (*** nicht *** zu den Kommentaren) und bitte die erwartete Ausgabe hinzufügen. Die Leute möchten Ihren Code direkt kopieren und ihre Lösung mit Ihrer Ausgabe vergleichen. (d. h. ein [mcve] (https://stackoverflow.com/help/mcve)) – kkuilla
Ich bekomme 'Avg_clustering_coeff = 0.10' jedes Mal, wenn ich Ihren Code ausführen. Wird das erwartet? Außerdem ist das kleine 'n' in Ihrem' für i = 1: n 'undefiniert. – kkuilla