首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >邻接uint8稀疏特征值

邻接uint8稀疏特征值
EN

Stack Overflow用户
提问于 2016-01-12 18:26:00
回答 2查看 88关注 0票数 0

我有一个源矩阵和目标矩阵,我用稀疏函数创建了一个邻接矩阵。

代码语言:javascript
复制
W = sparse(w1(:,1),w1(:,2),1,n,n);

我的n大约等于540,000 (这是我拥有的数据的子集)。创建矩阵本身在计算上非常容易。但是,我需要得到所述矩阵的特征值。更准确地说

代码语言:javascript
复制
rho = max(abs(eigs(W)));

这一行代码要花很长时间。仔细研究一下,我被引导相信获取稀疏矩阵的特征值在计算上是很费钱的。我不能使用完整的命令,比如uint8( full (W)),因为我最终超过了最大矩阵大小/内存容量(130 of内存)。但是,如果格式是uint8,我就可以创建完整的邻接矩阵。

任何帮助都是非常感谢的。我认为我需要的是以下其中之一

  • 将邻接矩阵直接构造为完全uint8的另一种方法;
  • 一种将我创建的邻接矩阵转换为完整uint8的方法;或
  • 计算这些特征值的另一种方法
EN

回答 2

Stack Overflow用户

发布于 2016-01-12 18:41:50

使用W = sparse(w1(:,1),w1(:,2),1,n,n);,您将创建一个只包含0或1的矩阵。虽然数据类型uint8是不可能的,但您可以选择创建sparse logical矩阵。这样可以避免使用64位数据类型。

代码语言:javascript
复制
W = sparse(w1(:,1),w1(:,2),true,n,n);
W = uint8(full(W));
票数 0
EN

Stack Overflow用户

发布于 2016-01-12 21:24:01

知道您使用整数的计划不是解决方案,我再次阅读了您的问题,并意识到您正在浪费许多性能,没有正确地使用eigs。如果您只感兴趣的大小最大的特征值,只计算这个特征值。

代码语言:javascript
复制
rho = abs(eigs(W,1));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34751165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档