分区图与拉普拉斯算子矩阵
这个例子展示了如何使用一个图的拉普拉斯算子矩阵计算菲德勒向量。菲德勒向量可以用于图像分割成两个子图。
加载数据
加载数据集barbellgraph.mat
,其中包含杠铃的稀疏的邻接矩阵和节点坐标图。
负载barbellgraph.mat
图
使用自定义节点坐标绘制图xy
。
图G = (,“omitselfloops”);p =情节(G,“XData”xy (: 1),“YData”xy (: 2),“标记”,“。”);轴平等的
计算拉普拉斯算子矩阵和菲德勒向量
计算图的拉普拉斯算子矩阵。然后,计算两个最小的大小特征值和相应的特征向量eigs
。
L =拉普拉斯算子(G);[V D] = eigs (L 2“smallestabs”);
菲德勒向量的第二个最小的特征值对应的特征向量图。的最小的特征值是零,这表明图有一个连接组件。在这种情况下,第二列V
对应于第二个最小的特征值D (2, 2)
。
D
D =2×21030.2873×0.0000 0 0
w = V (:, 2);
发现菲德勒向量使用eigs
扩展到更大的图,因为只有一个子集的特征值和特征向量计算,但对于较小的图是同样可行的拉普拉斯算子矩阵转换为完整的存储和使用eig(全(L))
。
分区图
图像分割成两个子图使用菲德勒向量w
。节点分配给子图,如果它有一个积极的价值w
。否则,节点分配给子图b,这种做法被称为切迹象或零阈值降低。签署削减最小化的重量减少,受重量的上下界的任何重要的削减图表。
使用信号减少分区图。突出节点的子图w > = 0
红色,节点w < 0
在黑色的。
突出(p,找到(w > = 0),“NodeColor”,“r”)%子图突出(p,发现(w < 0),“NodeColor”,“k”)% B子图
酒吧贝尔图,这个平分图很好地分割成两个相等的节点集。然而,削减并不总是产生一个平衡的迹象。
它总是可以平分一个图计算中位数的w
和使用它作为一个阈值。这个分区称为中值减少,它保证同等数量的节点在每个子图。
你可以用中位数减少第一次转变中的值w
中位数:
w_med = w - (w)中位数;
然后,通过登录分区图w_med
。酒吧贝尔图的中值w
是接近于零,所以这两个削减生产类似的二分。