==== NearestNeighbor[] graph from Adjacency Matrix - typically from matrix computation ====
===== INPUT =====
In[]:=
vertices={"A","B","C","D"};
In[]:=
adjM={{0,0.1,0.4,0.2},{0.1,0,0.1,0.5},{0.4,0.1,0,0.2},{0.2,0.5,0.2,0}};
===== COMPUTATION =====
===== COMPUTATION =====
In[]:=
vcount=Length[vertices];
In[]:=
indicesHash=CreateDataStructure["HashTable"];
In[]:=
Do[indicesHash["Insert",vertices[[i]]i],{i,1,vcount}];
In[]:=
vdistance[x_,y_]:=adjM[[indicesHash["Lookup",x],indicesHash["Lookup",y]]];
In[]:=
edges=EdgeList@NearestNeighborGraph[vertices,DirectedEdgesFalse,DistanceFunctionvdistance]
Out[]=
{AB,AD,BC,CD}
In[]:=
edgelabels=Flatten[{(#)->adjM[[indicesHash["Lookup",#[[1]]],indicesHash["Lookup",#[[2]]]]]}&/@edges]
Out[]=
{AB0.1,AD0.2,BC0.1,CD0.2}
===== OUTPUT =====
===== OUTPUT =====
In[]:=
nng=NearestNeighborGraph[vertices,DirectedEdgesFalse,DistanceFunctionvdistance,VertexLabelsAll,VertexLabelStyle"Medium",EdgeLabelsedgelabels,EdgeLabelStyleMedium,ImageSizeSmall]
Out[]=
In[]:=
Dendrogram[vertices,DistanceFunctionvdistance]
Out[]=