isisomorphic
确定两个图是否同构
描述
例子
比较图
创建并绘制两个有向图,然后确定它们是否同构。
G1 =有向图([1 1 1 2 3 4],[2 3 4 4 1]);G2 =有向图([3 3 3 2 1 4],[1 4 2 3 2 2]);副地块(1,2,1)地块(G1)副地块(1,2,2)地块(G2)
isisomorphic (G1, G2)
ans =逻辑1
比较不同标签和布局的图形
创建并绘制两张图表,G1
而且G2
.
G1 =图([1 1 1 2 2 3 3 4 5 5 7 7],[2 4 5 3 6 4 7 8 6 8 6 8]);情节(G1,“XData”,[1 4 4 1 2 3 3 2],“YData”,[4 4 1 1 3 3 2 2])
G2 =图({“一个”“一个”“一个”“b”“b”“b”“c”“c”“c”' d '' d '' d '},...{‘g’“h”“我”‘g’“h”“j”‘g’“我”“j”“h”“我”“j”});情节(G2,“XData”,[1 2 2 2 1 2 1 1],“YData”,[4 4 3 2 3 1 2 1])
确定是否存在同构G1
而且G2
.结果表明,尽管这些图的标签和布局不同,但它们在结构上是相同的。
tf =同构(G1,G2)
tf =逻辑1
保留同构比较中的节点属性
使用两种不同的比较来确定两个图之间是否存在同构关系。其中一个比较保留节点属性,而另一个比较忽略它。
创建两个相似的图形。添加节点属性颜色
对每一个图。
G1 =图({' d '“e”“f”},{“e”“f”' d '});G1.Nodes。颜色= {“红色”“红色”“蓝”} ';G2 =图({“一个”“b”“c”},{“b”“c”“一个”});G2.Nodes。颜色= {“蓝”“蓝”“红色”} ';
在同一幅图中并排画出这两幅图。将节点涂成红色颜色=“红色”
.
subplot(1,2,1) p1 = plot(G1);突出(p1, {' d '“e”},“NodeColor”,“r”) subplot(1,2,2) p2 = plot(G2);突出(p2,“c”,“NodeColor”,“r”)
判断图是否同构,忽略颜色
财产。
tf =同构(G1,G2)
tf =逻辑1
的值,并确定图是否同构颜色
财产在比较中。在这种情况下,没有同构,因为颜色
属性中包含不同数量的“红色”
而且“蓝”
值。
tf =同构(G1,G2,“NodeVariables”,“颜色”)
tf =逻辑0
输入参数
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:tf =同构(G1,G2,'NodeVariables',{'Var1' 'Var2'})
EdgeVariables
- - - - - -要保留的边缘变量
特征向量|字符串标量|字符向量的单元格数组|字符串数组
边缘变量要保留,指定为逗号分隔的对,由“EdgeVariables”
以及字符向量、字符串标量、字符向量的单元格数组或字符串数组。使用此选项可指定一个或多个边变量G1。边缘
而且G2。边缘
.同构比较必须保留指定的边变量才能有效。对于在相同的两个节点之间有多条边的多图,相同节点对的边变量的顺序是不相关的。
数据类型:字符
|字符串
|细胞
NodeVariables
- - - - - -要保留的节点变量
特征向量|字符串标量|字符向量的单元格数组|字符串数组
节点变量要保留,指定为逗号分隔的对,由“NodeVariables”
以及字符向量、字符串标量、字符向量的单元格数组或字符串数组。使用此选项可指定一个或多个节点变量同时属于这两种类型G1。节点
而且G2。节点
.同构比较必须保留指定的节点变量才能有效。
数据类型:字符
|字符串
|细胞
更多关于
图的同构
两个图,G1
而且G2
,如果存在节点的排列,则是同构的P
这样reordernodes (G2, P)
有相同的结构G1
.
同构的两个图具有相似的结构。例如,如果一个图包含一个循环,那么所有与该图同构的图也包含一个循环。
版本历史
在R2016b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。