Я хотел бы сгенерировать все возможные матрицы смежности (нулевой диагональ) неориентированного графа n
узлов.Умный способ генерации матрицы нулей и единиц в Matlab
Например, без переобозначения для n=3
мы получаем 2 3 (3-1)/2 = 8 возможных конфигурации сети (или матрица смежности).
Одно решение, которое работает для n = 3
(и я думаю, это довольно глупо) будет следующим:
n = 3;
A = [];
for k = 0:1
for j = 0:1
for i = 0:1
m = [0 , i , j ; i , 0 , k ; j , k , 0 ];
A = [A, m];
end
end
end
Также я, хотя в следующем, который, кажется, быстрее, но что-то не так с моей индексации, так как 2 отсутствуют:
n = 3
C = [];
E = [];
A = zeros(n);
for i = 1:n
for j = i+1:n
A(i,j) = 1;
A(j,i) = 1;
C = [C,A];
end
end
B = ones(n);
B = B- diag(diag(ones(n)));
for i = 1:n
for j = i+1:n
B(i,j) = 0;
B(j,i) = 0;
E = [E,B];
end
end
D = [C,E]
Есть ли более быстрый способ сделать это?
Есть несколько проблем, как это над в Коди –
@CarlWitthoft спасибо вы очень – Sha