从最近邻居搜索创建邻接矩阵。(将邻接列表转换为邻接矩阵)-Matlab

W

我有一个矩阵2000x5,在第一列中是点号,在第2-5列中是4个邻居(如果没有邻居,则为0)。有没有一种有效的方法可以据此创建邻接矩阵?

1   129 0   65  0
2   130 0   66  85
3   131 169 67  0
4   132 170 68  87
5   133 0   69  81
6   134 0   70  82
7   135 173 71  83
8   136 174 72  84
9   137 161 73  0
10  138 162 74  93
11  139 163 75  0
12  140 164 76  95
13  141 165 77  89
14  142 166 78  90
15  143 167 79  91
16  144 168 80  92
17  145 0   81  65
18  146 0   82  66
....

我找到了以下线程,仅在一个邻居中对其进行了说明,但是我不确定如何在多个邻居中使用它。matlab邻接表到邻接矩阵

我将非常感谢您的帮助。

crazyGamer

一种快速简单的技术:

adjMat = zeros(size(A,1));
for ind = 1:size(A,1)
    % Flag 1 on each row 'ind' at the indices mentioned in col 2-5
    adjMat(ind, nonzeros(A(ind,2:end))) = 1;
end

由于您已经提到使用最近邻居搜索,因此,如果第1行具有20作为邻居,那么第20行很有可能具有1作为邻居,因此应该完全填充邻接列表以生成无向图。 。

但是,从技术上讲,这将产生一个与邻接表完全等效的邻接矩阵,而无需单独假设。

例子:

对于邻接表

A = [1 2 3; 2 0 1; 3 1 4; 4 5 3; 5 4 0]

A =

 1     2     3
 2     0     1
 3     1     4
 4     5     3
 5     4     0

结果是:

adjMat =

 0     1     1     0     0
 1     0     0     0     0
 1     0     0     1     0
 0     0     1     0     1
 0     0     0     1     0

PS要强制方向性,您只需在for循环主体中添加另一条语句即可:

adjMat(nonzeros(A(ind,2:end)),ind) = 1;

这将确保邻接矩阵是对称的,这是无向图的特征。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建邻接矩阵Matlab

来自分类Dev

Matlab:补丁对象的邻接矩阵

来自分类Dev

如何使用MATLAB绘制邻接矩阵

来自分类Dev

Matlab中给出的欧几里得距离矩阵的邻接矩阵

来自分类Dev

在MATLAB中使用稀疏矩阵作为邻接矩阵

来自分类Dev

在Matlab中的邻接矩阵中随机删除节点

来自分类Dev

如何在Matlab中形成邻接矩阵

来自分类Dev

在Matlab中的邻接矩阵中随机删除节点

来自分类Dev

Python-将边缘列表转换为邻接矩阵

来自分类Dev

R:将表转换为邻接矩阵或边列表

来自分类Dev

将邻接矩阵转换为 R 中的两列表

来自分类Dev

如何在Matlab中将给定的邻接矩阵表示为无向加权图?

来自分类Dev

使用Matlab编辑器从输入数据集图形文件构造邻接矩阵

来自分类Dev

如何在Matlab中使用邻接矩阵绘制2个合并树

来自分类Dev

如何使用python将邻接矩阵转换为邻接列表?

来自分类Dev

从边缘列表创建邻接矩阵

来自分类Dev

创建权重邻接矩阵

来自分类Dev

将igraph邻接矩阵转换为numpy数组

来自分类Dev

将邻接矩阵转换为Cytoscape的Edgelist(csv文件)

来自分类Dev

将txt文件转换为邻接矩阵

来自分类Dev

将邻接矩阵转换为CSV文件

来自分类Dev

邻接矩阵Java

来自分类Dev

邻接矩阵实现

来自分类Dev

邻接矩阵查找是否邻居

来自分类Dev

R igraph-将加权邻接矩阵转换为加权边列表

来自分类Dev

将循环锦标赛的名义结果转换为邻接矩阵列表

来自分类Dev

如何将加权边列表转换为 R 中的邻接矩阵

来自分类Dev

igraph从邻接表生成邻接矩阵

来自分类Dev

Haskell边缘列表的邻接矩阵