findedge
定位图中的边
语法
说明
示例
定位具有指定端节点的边
创建一个图,然后确定 (1,2) 和 (3,5) 边的边索引。
s = [1 1 2 2 2 3 3 3]; t = [2 3 3 4 5 6 7 5]; G = graph(s,t)
G = graph with properties: Edges: [8x1 table] Nodes: [7x0 table]
idxOut = findedge(G,[1 3],[2 5])
idxOut = 2×1
1
6
idxOut
包含每条指定边的 G.Edges.EndNodes
的行索引。
所有图边的端节点
创建一个图,然后确定图中所有边的端节点。
s = {'a' 'a' 'b' 'b' 'c' 'c'}; t = {'b' 'c' 'd' 'e' 'f' 'g'}; G = graph(s,t); G.Edges
ans=6×1 table
EndNodes
______________
{'a'} {'b'}
{'a'} {'c'}
{'b'} {'d'}
{'b'} {'e'}
{'c'} {'f'}
{'c'} {'g'}
[sOut,tOut] = findedge(G)
sOut = 6×1
1
1
2
2
3
3
tOut = 6×1
2
3
4
5
6
7
定位具有指定边索引的边
创建一个图,然后确定其索引是 3
和 7
的边的端节点。
s = [1 1 1 1 2 2 3 3 4 4]; t = [2 3 4 5 6 7 8 9 10 11]; G = digraph(s,t)
G = digraph with properties: Edges: [10x1 table] Nodes: [11x0 table]
[sOut,tOut] = findedge(G,[3 7])
sOut = 2×1
1
3
tOut = 2×1
4
8
确定指定边的权重
创建一个图。
s = [1 1 2 3]; t = [2 3 3 4]; weights = [10 20 30 40]; G = graph(s,t,weights)
G = graph with properties: Edges: [4x2 table] Nodes: [4x0 table]
使用 findedge
检索索引来找出 (1,3) 边的权重。
G.Edges.Weight(findedge(G,1,3))
ans = 20
更改多重图边的权重
使用 findedge
更改多重图中数条边的权重。
创建并绘制一个多重图。此图在节点 2 和节点 4 之间有两条边。
s = [1 1 2 3 2 2];
t = [2 3 3 4 4 4];
weights = [10 20 30 40 10 10];
G = graph(s,t,weights);
plot(G,'EdgeLabel',G.Edges.Weight)
更改节点 (3,2) 和 (2,4) 之间的边的权重。为 findedge
指定两个输出,以获取端节点索引 m
。当两个节点之间存在多条边时,此输出非常有用,因为 idxOut
中的元素数量可能多于 s
和 t
中的节点对数量。边 idxOut(1) = 3
连接节点对 (s(1),t(1)) = (3,2)
,边 idxOut(2) = 4
和 idxOut(3) = 5
连接节点对 (s(2),t(2)) = (2,4)
。
s = [3 2]; t = [2 4]; w = [1 4]; [idxOut, m] = findedge(G, s, t)
idxOut = 3×1
3
4
5
m = 3×1
1
2
2
G.Edges.Weight(idxOut) = w(m);
plot(G,'EdgeLabel',G.Edges.Weight)
输入参数
s,t
— 节点对组(以单独参量指定)
节点索引 | 节点名称
节点对组,指定为单独的节点索引或节点名称参量。s
和 t
中位置类似的元素指定图中边的源和目标节点。
下表显示通过数值节点索引或节点名称引用一个或多个节点的不同方法。
形式 | 单一节点 | 多个节点 |
---|---|---|
节点索引 | 标量 示例: | 向量 示例: |
节点名称 | 字符向量 示例: | 字符向量元胞数组 示例: |
字符串标量 示例: | 字符串数组 示例: | |
分类数组 示例: | 分类数组 示例: |
示例: G = findedge(G,[1 2],[3 4])
示例: G = findedge(G,{'a' 'a'; 'b' 'c'},{'b' 'c'; 'c' 'e'})
idx
— 边索引
标量 | 向量
边索引,指定为正整数组成的标量或向量。边索引对应于图 G.Edges(idx,:)
的 G.Edges
表中的一个行。
输出参量
idxOut
— 边索引
标量 | 向量
边索引,以非负整数组成的标量或向量形式返回。边索引对应于图 G.Edges(idxOut,:)
的 G.Edges
表中的行。边索引 0
表示边不在图中。
idxOut
的长度对应于输入中的节点对的数量,除非输入图是多重图。
m
— 端节点索引
向量
端节点索引,以向量形式返回。m
中的值将 idxOut
中的边索引连接到输入节点对 (s,t)
。边 idxOut(j)
连接索引为 m(j)
的节点对。
sOut,tOut
— 节点 ID
标量 | 向量
节点 ID,以由正整数组成的单独标量或向量形式返回。同样,sOut
和 tOut
中定位的元素指定构成边 G.Edges(idx,:)
的源和目标节点。
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
版本历史记录
在 R2015b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)