• 大小: 180KB
    文件类型: .tar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: Matlab
  • 标签: matlab  graph  analysis  

资源简介

用于统计计算网络中的各种拓扑特性,例如:节点度、聚集系数、网络直径等

资源截图

代码片段和文件信息

function newEdges=addrandedges(numbAddedgesN)
%Function newEdges=addrandedges(numbAddedgesN) adds numbAdd random 
%edges to the current edge set.  Generally used to “small-worldify“ a 
%graph by adding some long range connections (i.e. drastically decrease 
%the graph diameter)
%
%Inputs:    numbAdd - Number of additional edges to add
%           edges - An Mx2 vector indicating the edges of the graph
%           N - Optional number of nodes in the graph if different than
%               N = max(max(edges)) (i.e. there are isolated nodes)
%
%Outputs:   newEdges - An (M + numbAdd)x2 vector of edges for the new 
%               graph
%
%
%Note: If duplicate edges are generated randomly the duplicates are
%   ignored - Therefore the actual number of edges added may be less than
%   numbAdd (e.g. if the input graph were fully connected)
%
%
%5/22/03 - Leo Grady

% Copyright (C) 2002 2003 Leo Grady 
%   Computer Vision and Computational Neuroscience Lab
%   Department of Cognitive and Neural Systems
%   Boston University
%   Boston MA  02215
%
% This program is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License
% as published by the Free Software Foundation; either version 2
% of the License or (at your option) any later version.
%
% This program is distributed in the hope that it will be useful
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not write to the Free Software
% Foundation Inc. 59 Temple Place - Suite 330 Boston MA  02111-1307 USA.
%
% Date - $Id: addrandedges.mv 1.2 2003/08/21 17:29:29 lgrady Exp $
%========================================================================%

%Determine number of points
if nargin < 3
    N=max(max(edges));
end

%Randomly generate new edges
tmpEdges=round((N-1)*rand(numbAdd2)+1);

%Remove duplicates
W=adjacency([edges;tmpEdges]ones(length(edges)+numbAdd1)N);
newEdges=adjtoedges(W);

评论

共有 条评论