[工具]toolbox_graph_建立欧式距离邻接矩阵

build_euclidean_weight_matrix:由邻接表,以及顶点坐标计算欧式距离矩阵。

  function W = build_euclidean_weight_matrix(A,vertex,pad_with)

  参数说明:A——邻接表

    vertex——顶点矩阵

    pad_with——若两顶点不相连,则在欧式距离矩阵中赋予pad_with。默认为Inf。

  输出:W——欧式距离邻接矩阵。

 

其中,计算邻接矩阵用到了弗罗贝尼乌斯范数( Frobenius norm),计算方法如下

\|A\|_F=\sqrt{\sum_{i=1}^m\sum_{j=1}^n |a_{ij}|^2}=\sqrt{\operatorname{trace}(A^{{}^*} A)}=\sqrt{\sum_{i=1}^{\min\{m,\,n\}} \sigma_{i}^2}

对于矩阵,就是直接求每个元素的平方和,然后对得到的结果开平方。

在这个方法中,就是求欧式距离:

for i = 1:n
for j=1:n
if A(i,j)~=0

%求欧式距离
W(i,j) = norm( vertex(i,:)-vertex(j,:), 'fro' );
end
end
end

posted on 2015-03-23 22:16  Sipin  阅读(316)  评论(0编辑  收藏  举报

导航