将txt加权邻接列表导入矩阵

时间:2015-02-08 16:09:47

标签: matlab graph

我想创建一个加权的adj矩阵。是否有一种好的方法即使使用庞大的数据集也能工作? 我有这个abc.txt文件,例如:

abc.txt
1 2 50
2 3 70
3 1 42
1 3 36

结果应该是

matrix=
0  50  36
0   0   70
42  0   0 

如何从输入数据集图形文件构建加权邻接矩阵,如上所示,其中包含权重?

所以基本上输入文件有3列,第三列是每条边的权重。

2 个答案:

答案 0 :(得分:1)

你所拥有的是一个稀疏的矩阵定义,使用sparse是创建它的最简单方法。如果您的矩阵很薄(很多零),您也可能会使用稀疏矩阵,因为它需要更少的内存。然后删除最后一行。

S=load('abc.txt')
M=sparse(S(:,1),S(:,2),S(:,3))
M=full(M)

答案 1 :(得分:1)

您也可以将spconvert应用于importdata的输出:

matrix = full(spconvert(importdata('abc.txt')));