Re: Finding Clusters
- To: mathgroup at smc.vnet.net
- Subject: [mg104569] Re: Finding Clusters
- From: dh <dh at metrohm.com>
- Date: Wed, 4 Nov 2009 01:34:21 -0500 (EST)
- References: <hconfd$113$1@smc.vnet.net>
Hi,
you could achieve this using Union:
event = {{1, 2}, {1, 3}, {3, 4}, {5, 6}, {7, 8}, {8, 10}};
j = 0;
While[++j < Length[event],
i = j;
While[++i <= Length[event],
If[Intersection[event[[j]], event[[i]]] =!= {},
event[[j]] = Union[event[[j]], event[[i]]];
event = Drop[event, {i}]; --i];
]];
event
Daniel
fd wrote:
> All.
>
> I have a list which represents some natural event. These events are
> listed pair-wise, which corresponds to event happening within certain
> time interval from each other, as below
>
> event={{1,2},{1,3},{3,4},{5,6},{7,8},{8,10}}
>
> I wish to find a thread of events, i.e. if event A is related to B and
> B to C, I wish to group {A,B,C} together. For the example above I
> would have
>
> {{1,2,3,4},{5,6},{7,8,10}}
>
> This would correspond to do a Graph Plot and identifying the parts
> which are disconnected It should be simple but I'm really finding it
> troublesome.
>