| Description of dist |
dist
PURPOSE 
dist(g,v,w) and dist(g,v) --- find distance(s) between vertices
SYNOPSIS 
function d = dist(g,v,w)
DESCRIPTION 
CROSS-REFERENCE INFORMATION 
This function calls:
- dist dist(g,v,w) and dist(g,v) --- find distance(s) between vertices
- matrix matrix(g) --- return (a copy of) the adjacency matrix of g
- nv nv(g) --- number of vertices in g
This function is called by:
- diam diam(g) --- return the diameter of g: the length of a longest shortest
- dist dist(g,v,w) and dist(g,v) --- find distance(s) between vertices
- distxy distxy(g) -- give g a distance based embedding
- iso [yn,p] = iso(g,h,options) --- is g isomorphic to h?
- mdsxy mdsxy(g) -- create an embedding based on multidimensional scaling
SUBFUNCTIONS 
SOURCE CODE 
0001 function d = dist(g,v,w)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 if nargin == 3
0014 dd = dist(g,v);
0015 d = dd(w);
0016 return
0017 end
0018
0019 n = nv(g);
0020
0021
0022 if nargin==1
0023 d = alltoall(g);
0024 return
0025 end
0026
0027 d = onetoall(g,v);
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 function d = alltoall(g)
0052 n = nv(g);
0053 d = zeros(n,n);
0054 for v=1:n
0055 d(:,v) = dist(g,v);
0056 end
0057 return
0058
0059
0060
0061
0062 function d = onetoall(g,v)
0063 A = double(matrix(g));
0064 n = nv(g);
0065 vec = zeros(n,1);
0066 vec(v) = 1;
0067 d = inf*ones(1,n);
0068 d(v) = 0;
0069
0070 count = 0;
0071 while true
0072 count = count + 1;
0073 newv = (A*vec + vec)>0;
0074 morev = newv - vec;
0075 if (nnz(morev)==0)
0076 break
0077 end
0078 d(find(morev))=count;
0079 vec = newv;
0080 end
0081 return
Generated on Thu 13-Mar-2008 14:23:52 by m2html © 2003
|
|