 
 
 
 
 
 
Re: creating adjacency matrices
- To: mathgroup at smc.vnet.net
- Subject: [mg36584] Re: creating adjacency matrices
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 13 Sep 2002 01:13:51 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <alnvl6$7pn$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
with 
In[]:=lst = {{1, A},
{1, B},
{2 , B},
{3, C}, {3, D}, {1, D}};
and 
In[]:=
AdjacenceMatrix[lst : {{_, _} ..}] := Module[
    {actors,events adj},
    {events, actors} = Union /@ Transpose[lst];
    adj = Table[0, {Length[events]}, {Length[actors]}];
    Scan[(Part[adj, Sequence @@ #] = 1) &, 
      lst /. MapIndexed[Rule[#1, First[#2]] &, actors]];
    adj
    ]
you get
In[]:=AdjacenceMatrix[lst]
Out[]={{1, 1, 0, 1}, {0, 1, 0, 0}, {0, 0, 1, 1}}
Regards
  Jens
"Moliterno, Thomas" wrote:
> 
> I need to create an adjacency matrix from my data, which is currently in
> the form of a .txt file and is basically a two column incidence list.
> For example:
> 
> 1 A
> 1 B
> 2 B
> 3 C
> . .
> . .
> . .
> m n
> 
> Where 1 to m represent actors and A to n represent events. My goal is to
> have an (m x m) matrix where cell i,j equals 1 if two actors are
> incident to the same event (in the sample above, 1 and 2 are both
> incident to B) and 0 otherwise (w/ zeros on the diagonal).
> 
> I'm new to Mathmatica, and so I'm on the steep part of the learning
> curve ... All I've been able to figure out so far is how to get my
> incidence list into the program using Import["filename.txt"]. But then
> what? How do I convert to the adjacency matrix? I've found the
> ToAdjacencyMatrix[] command in DiscreteMath`Combinatorica`, but I can't
> seem to get it to work ...
> 
> Thanks to any and all in advance.
> 
> Tom
> 
> **********************************************
> Thomas P. Moliterno
> Graduate School of Management
> University of California, Irvine
> tmoliter at uci.edu
> **********************************************

