将稀疏索引用于矩阵时出错太大

时间:2014-08-19 07:54:52

标签: matlab indexing sparse-matrix

我在稀疏表示中有一个巨大的邻接矩阵。我有70.000和300.000边,邻接文件的结构是Nx3矩阵,前两列是连接节点,第三列是权重。我想从matlab中读取。首先我导入文件,其次我尝试使用spconvert创建稀疏矩阵:

adj1 = spconvert(gr);

但是我收到以下错误消息:

??? Error using ==> sparse
Index into matrix is too large.
Error in ==> spconvert at 53
   S = sparse(D(:,1),D(:,2),D(:,3));

矩阵的最大值是2.537020525000000e + 09并且对应于一个节点。知道这里有什么问题吗?

1 个答案:

答案 0 :(得分:3)

如果您查看sparse的文档,它会告诉您:

  

注意:如果i或j中的任何值对于32位平台大于2 ^ 31-1,或者在64位平台上大于2 ^ 48-1,则无法构造稀疏矩阵。

这对应于32位平台上最大值的2.15 e^09,因此会给出错误消息,因为您的最大值大于此值。作为一种解决方案,我建议重新调整您的体重值,例如使用日志。