Main Content

rmedge

从图中删除边

说明

示例

H = rmedge(G,s,t) 从图 G 删除节点对组 st 指定的边。如果 st 指定了多条边,则将它们全部删除。

示例

H = rmedge(G,idx) 使用边索引 idx 指定要删除的边。边索引是 G.Edges 表中的行号。

示例

全部折叠

创建并绘制一个图。

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

从图中删除若干条边并绘制结果。

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

创建一个图并查看边列表。

s = {'BOS' 'NYC' 'NYC' 'NYC' 'LAX'};
t = {'NYC' 'LAX' 'DEN' 'LAS' 'DCA'};
G = digraph(s,t);
G.Edges
ans=5×1 table
         EndNodes     
    __________________

    {'BOS'}    {'NYC'}
    {'NYC'}    {'LAX'}
    {'NYC'}    {'DEN'}
    {'NYC'}    {'LAS'}
    {'LAX'}    {'DCA'}

使用边索引删除节点 'NYC''DEN' 之间的边。

G = rmedge(G,3);
G.Edges
ans=4×1 table
         EndNodes     
    __________________

    {'BOS'}    {'NYC'}
    {'NYC'}    {'LAX'}
    {'NYC'}    {'LAS'}
    {'LAX'}    {'DCA'}

此示例说明如何删除图中的所有自环。自环是指使节点自身相连的边。

创建包含两个自环的图。

G = graph([1 1 1 2],[1 2 3 2]);
plot(G)

使用 rmedge 删除图中的所有自环。尽管 G 只有两个自环,但此方法可以删除任何有向图或无向图中的所有自环。

G = rmedge(G, 1:numnodes(G), 1:numnodes(G));
plot(G)

输入参数

全部折叠

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

示例: G = graph(1,2)

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

节点对组,指定为单独的节点索引或节点名称参量。st 中位置类似的元素指定图中边的源和目标节点。

下表显示通过数值节点索引或节点名称引用一个或多个节点的不同方法。

形式单一节点多个节点
节点索引

标量

示例:1

向量

示例:[1 2 3]

节点名称

字符向量

示例:'A'

字符向量元胞数组

示例:{'A' 'B' 'C'}

字符串标量

示例:"A"

字符串数组

示例:["A" "B" "C"]

示例: G = rmedge(G,1,2) 从图 G 中删除节点 1 和节点 2 之间的边。

示例: G = rmedge(G,{'a' 'b'},{'d' 'c'}) 从图 G 中删除两条边,其中第一条是节点 'a' 和节点 'd' 之间的边。

边索引,指定为标量或向量。边索引是表示 G.Edges 表中行号的非负整数。

示例: G = rmedge(G,[1 3 5])G.Edges 中删除第一、第三和第五条边(行)。

输出参量

全部折叠

输出图,以 graphdigraph 对象形式返回。

扩展功能

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

版本历史记录

在 R2015b 中推出