我有一个用于大型网络结构的来自节点的 nx2 矩阵。我用它来创建一个稀疏邻接矩阵,我可以使用 BIOGRAPH 绘制它。我的系统大小不一,最大的有 3000 多个节点(显然不适合绘图)。
如果我选择一条线,我希望能够为给定的 X(通常为 3)创建一个列表,其中包含从原始线(两个节点)开始的 X 个“步骤”内的所有线和节点。使用蛮力显然不是太难。但是,我需要尽快完成此操作。
adj_mat = sparse(from_nodes, to_nodes, 1, s, s);
有没有办法使用邻接矩阵来做到这一点?我可以使用 to/from 列表更有效地做到这一点吗?
我现在要做的是查找连接到所选线的节点的索引,然后搜索整个 to-from 节点列表并查找 to/from 元素等于所选线的节点之一的所有线. 然后我使用新的节点列表并搜索整个 to/from 列表,再次搜索这些节点。
我现在使用的代码如下所示:
% tempBranch = the branches connected to the list of the current branches
k = 1;
for i = 1:nnz(nodeList) % number of after step X-1 (for X=0 this is
% equal to the nodes connected to the chosen line
for j = 1:n % n = number of lines
if branchList(j,1) == nodeList(i) || branchList(j,2) == nodeList(i)
tempBranch(k) = j;
k = k + 1;
end
end
end
谢谢!