【发布时间】:2013-05-02 09:50:53
【问题描述】:
我有一个用于大型网络结构的 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
谢谢!
【问题讨论】:
-
您是否安装了生物信息学工具箱?
-
@eitan-t:是的。你知道
getrelatives函数是否有效吗?这将在稍后翻译成另一种语言,因此如果可以实现代码(或伪代码),那就太好了!
标签: matlab connectivity adjacency-matrix