
用matlab根据邻接矩阵构建求得所有无向图的连通分量 10
现在我已经知道对应的边有:112233343544454755576677对应的邻接矩阵:1000000010000000111000011101001110100000...
现在我已经知道对应的边有:
1 1
2 2
3 3
3 4
3 5
4 4
4 5
4 7
5 5
5 7
6 6
7 7
对应的邻接矩阵:
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 1
0 0 1 1 1 0 1
0 0 0 0 0 1 0
0 0 0 1 1 0 1
对应的顶点为V1,V2,V3,V4,V5,V6,V7
我现在需要用matlab求的是,连通分量的顶点集合。
例如:上述邻接矩阵最后得到,
v1
v2
v3 v4 v5 v7
v6
这样子。注意是无向图,邻接矩阵是对称的。求一个matlab算法 展开
1 1
2 2
3 3
3 4
3 5
4 4
4 5
4 7
5 5
5 7
6 6
7 7
对应的邻接矩阵:
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 1 1 1 0 0
0 0 1 1 1 0 1
0 0 1 1 1 0 1
0 0 0 0 0 1 0
0 0 0 1 1 0 1
对应的顶点为V1,V2,V3,V4,V5,V6,V7
我现在需要用matlab求的是,连通分量的顶点集合。
例如:上述邻接矩阵最后得到,
v1
v2
v3 v4 v5 v7
v6
这样子。注意是无向图,邻接矩阵是对称的。求一个matlab算法 展开
1个回答
展开全部
1)定义一个大小为7的数组,初始值分别为1:n。
如:array=1:7;(即array=1,2,3,4,5,6,7)
2)遍历每条边(两个端点),把大的对应的点改成小的。
如:1 1 array=1,2,3,4,5,6,7
2 2 array=1,2,3,4,5,6,7
3 3 array=1,2,3,4,5,6,7
3 4 array=1,2,3,3,5,6,7
3 5 array=1,2,3,3,3,6,7
.... 最后变成 array=1,2,3,3,3,6,3
3)提取相同值对应的编号进行分组,然后就分成四组了。
如:array=1:7;(即array=1,2,3,4,5,6,7)
2)遍历每条边(两个端点),把大的对应的点改成小的。
如:1 1 array=1,2,3,4,5,6,7
2 2 array=1,2,3,4,5,6,7
3 3 array=1,2,3,4,5,6,7
3 4 array=1,2,3,3,5,6,7
3 5 array=1,2,3,3,3,6,7
.... 最后变成 array=1,2,3,3,3,6,3
3)提取相同值对应的编号进行分组,然后就分成四组了。
更多追问追答
追问
是个不错的向想法 没有别人就你啦
追答
这样比较简单,但有一个前提,输入的边是排好序的,否则,要做递归修改。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?

2025-02-09 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询