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. >