subgraph
提取子图
说明
示例
提取子图
创建并绘制一个图。
s = [1 1 1 1 2 2 2 2 2 2 2 2 2 2 15 15 15 15 15]; t = [3 5 4 2 14 6 11 12 13 10 7 9 8 15 16 17 19 18 20]; G = graph(s,t); plot(G,'Layout','force')
通过指定要包含的节点,从 G
提取子图。子图中的节点编号会重置。
idx = [2 15 16 17 18 19 20 1 3 4 5]; H = subgraph(G,idx); plot(H,'Layout','force')
具有节点和边属性的子图
创建并绘制一个具有命名节点的加权图。
s = [1 1 1 2 2 2 8 8 8 8]; t = [2 3 4 5 6 7 9 10 11 12]; weights = [10 30 40 80 60 60 20 30 90 80]; names = {'A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' 'L'}; G = graph(s,t,weights,names); plot(G,'EdgeLabel',G.Edges.Weight)
提取一个子图,其中包含节点 'B'
及其所有相邻节点。subgraph
保留节点名称和边权重。但是,与 G
相比较,H
中的数值节点 ID 经过重新编号。
N = neighbors(G,'B'); H = subgraph(G, ['B'; N]); plot(H,'EdgeLabel',H.Edges.Weight)
输入参数
nodeIDs
— 节点标识符
节点索引 | 节点名称
节点标识符,指定为一个或多个节点索引或节点名称。nodeIDs
选择 G
中的部分节点来生成子图 H
。
下表显示通过数值节点索引或节点名称引用一个或多个节点的不同方法。
形式 | 单一节点 | 多个节点 |
---|---|---|
节点索引 | 标量 示例: | 向量 示例: |
节点名称 | 字符向量 示例: | 字符向量元胞数组 示例: |
字符串标量 示例: | 字符串数组 示例: |
示例: H = subgraph(G,[1 2 5])
示例: H = subgraph(G,{'A' 'B' 'E'})
idx
— 节点选择向量
向量
节点选择向量,指定为逻辑向量。子图仅包含 idx(J)
为逻辑值 1
(true
) 的节点 J
。节点 J
在 H
中的索引为 I(J)
,其中 I = find(idx)
。
示例: subgraph(G,degree(G)>2)
数据类型: logical
输出参量
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
节点标识符
nodeIDs
必须为输入图G
的节点索引。不支持节点名称。
基于线程的环境
使用 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)