首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有邻接矩阵稀疏表示的度矩阵的计算

具有邻接矩阵稀疏表示的度矩阵的计算
EN

Stack Overflow用户
提问于 2014-06-19 09:47:39
回答 1查看 2.3K关注 0票数 0

我试图计算一个图的拉普拉斯矩阵。我计算了邻接矩阵的稀疏表示,该矩阵存储在一个具有维数Nx3的文本文件中。N节点大小(第一节点jth节点权重)。我在Matlab中用adj = spconvert(adj);打开这个文件。下一步是计算这个稀疏矩阵的度矩阵,以便执行L = D - adj操作。如何计算以图的稀疏邻接矩阵为输入的度矩阵?为了计算度矩阵,我计算每个节点的度:

代码语言:javascript
复制
for i=1:n % size of the node
    degree(i) =  length(find(adj(:,1) == i & adj(:,3) == 1));
end

然而,我如何执行D和A的减法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-19 10:23:06

使用斜纹函数将度向量转换为稀疏对角矩阵。然后从对角矩阵中减去邻接矩阵,得到拉普拉斯矩阵。使用代码的示例:

代码语言:javascript
复制
adj = spconvert(adj);
for i=1:size(adj, 1)
    degree(i) = CalcDegree(adj, i)
end
D = spdiags(degree, 0, size(adj, 1), size(adj, 2));
L = D - adj;

顺便说一下,计算节点度的代码可能不正确。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24303610

复制
相关文章

相似问题

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