我在稀疏表示中有一个巨大的邻接矩阵。我有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并且对应于一个节点。知道这里有什么问题吗?
答案 0 :(得分:3)
如果您查看sparse
的文档,它会告诉您:
注意:如果i或j中的任何值对于32位平台大于2 ^ 31-1,或者在64位平台上大于2 ^ 48-1,则无法构造稀疏矩阵。
这对应于32位平台上最大值的2.15 e^09
,因此会给出错误消息,因为您的最大值大于此值。作为一种解决方案,我建议重新调整您的体重值,例如使用日志。