MATLAB 帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
定位图中的边
[sOut,tOut] = findedge(G)
[sOut,tOut] = findedge(G,idx)
idxOut = findedge(G,s,t)
[idxOut,m] = findedge(G,s,t)
对于图 G 中的所有边,[sOut,tOut] = findedge(G) 返回的源和目标节点 ID sOut 和 tOut。
G
sOut,tOut
sOut
tOut
示例
[sOut,tOut] = findedge(G,idx) 查找 idx 指定的边的源和目标节点。
idx
对于源和目标节点对组 s 和 t 指定的边,idxOut = findedge(G,s,t) 返回数值边索引 idxOut。边索引对应于图的 G.Edges 表中的行 G.Edges.Edge(idxOut,:)。如果 s 和 t 之间存在多条边,则返回它们的所有索引。边索引 0 表示边不在图中。
s
t
idxOut
s,t
G.Edges
G.Edges.Edge(idxOut,:)
0
[idxOut,m] = findedge(G,s,t) 还返回向量 m,指示哪个节点对 (s,t) 与 idxOut 中的每个边索引关联。这在相同两个节点之间存在多条边时很有用。
m
(s,t)
全部折叠
创建一个图,然后确定 (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: [8×1 table] Nodes: [7×0 table]
idxOut = findedge(G,[1 3],[2 5])
idxOut = 2×1 1 6
idxOut 包含每条指定边的 G.Edges.EndNodes 的行索引。
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 = 6×1 1 1 2 2 3 3
tOut = 6×1 2 3 4 5 6 7
创建一个图,然后确定其索引是 3 和 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: [10×1 table] Nodes: [11×0 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: [4×2 table] Nodes: [4×0 table]
使用 findedge 检索索引来找出 (1,3) 边的权重。
findedge
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)。
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)
graph
digraph
输入图,指定为 graph 或 digraph 对象。可使用 graph 创建一个无向图,或使用 digraph 创建一个有向图。
示例: G = graph(1,2)
G = graph(1,2)
示例: G = digraph([1 2],[2 3])
G = digraph([1 2],[2 3])
节点对组,指定为单独的节点索引或节点名称参量。s 和 t 中位置类似的元素指定图中边的源和目标节点。
下表显示通过数值节点索引或节点名称引用一个或多个节点的不同方法。
标量
示例:1
1
向量
示例:[1 2 3]
[1 2 3]
字符向量
示例:'A'
'A'
字符向量元胞数组
示例:{'A' 'B' 'C'}
{'A' 'B' 'C'}
字符串标量
示例:"A"
"A"
字符串数组
示例:["A" "B" "C"]
["A" "B" "C"]
分类数组
示例:categorical("A")
categorical("A")
示例:categorical(["A" "B" "C"])
categorical(["A" "B" "C"])
示例: G = findedge(G,[1 2],[3 4])
G = findedge(G,[1 2],[3 4])
示例: G = findedge(G,{'a' 'a'; 'b' 'c'},{'b' 'c'; 'c' 'e'})
G = findedge(G,{'a' 'a'; 'b' 'c'},{'b' 'c'; 'c' 'e'})
边索引,指定为正整数组成的标量或向量。边索引对应于图 G.Edges(idx,:) 的 G.Edges 表中的一个行。
G.Edges(idx,:)
边索引,以非负整数组成的标量或向量形式返回。边索引对应于图 G.Edges(idxOut,:) 的 G.Edges 表中的行。边索引 0 表示边不在图中。
G.Edges(idxOut,:)
idxOut 的长度对应于输入中的节点对的数量,除非输入图是多重图。
端节点索引,以向量形式返回。m 中的值将 idxOut 中的边索引连接到输入节点对 (s,t)。边 idxOut(j) 连接索引为 m(j) 的节点对。
idxOut(j)
m(j)
节点 ID,以由正整数组成的单独标量或向量形式返回。同样,sOut 和 tOut 中定位的元素指定构成边 G.Edges(idx,:) 的源和目标节点。
全部展开
backgroundPool
ThreadPool
在 R2015b 中推出
numedges | findnode | graph | digraph
numedges
findnode
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处