【发布时间】:2016-05-19 09:24:40
【问题描述】:
我想生成n 节点的无向图的所有可能的邻接矩阵(零对角线)。
例如,没有对n=3 重新标记,我们得到 23(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 非常感谢您
标签: matlab optimization matrix nodes graph-theory