Main Content

ismultigraph

确定图是否具有多条边

说明

示例

如果 G 的任意两个节点之间存在多条边,则 tf = ismultigraph(G) 返回逻辑值 1 (true)。否则,将返回逻辑值 0 (false)。

按照惯例,对于包含自环但没有重复边的图,ismultigraph 返回逻辑值 0 (false)。但是,包含多个自环的图被视为多重图。

示例

全部折叠

使用 ismultigraph 确定输入图的两个节点之间是否有多条边。

创建一个图。

G = graph([1 1 1 1 1 2 2 2],[2 2 3 4 5 6 7 8]);
plot(G)

检查 G 是否为多重图。结果是逻辑值 1 (true),因为节点 1 和 2 之间有两条边。

tf = ismultigraph(G)
tf = logical
   1

使用 ismultigraph 确定图是否需要简化。

在创建空图并通过 addedge 以编程方式添加边时,常常会遇到重复的边。使用的边数据必须唯一才能避免重复。

为了说明这一点,请创建一个空图和一个包含两列随机数的矩阵。由于随机数只在 1 和 5 之间,因此这些数据会产生多条边。

G = graph;
rng default % for reproducibility
X = randi(5,15,2)
X = 15×2

     5     1
     5     3
     1     5
     5     4
     4     5
     1     4
     2     1
     3     5
     5     5
     5     4
      ⋮

将所有边都添加到图中,而不用清理源数据来确保行唯一。绘制图作为参考。

G = addedge(G,X(:,1),X(:,2));
plot(G)

测试该图是否为多重图,如果是,则使用 simplify 删除重复的边和自环。

if ismultigraph(G)
    G = simplify(G);
end

绘制所得的图。

plot(G)

输入参数

全部折叠

输入图,指定为 graphdigraph 对象。可使用 graph 创建一个无向图,或使用 digraph 创建一个有向图。

示例: G = graph(1,2)

示例: G = digraph([1 2],[2 3])

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2018a 中推出