Re: Re: Finding Clusters
- To: mathgroup at smc.vnet.net
- Subject: [mg104642] Re: [mg104564] Re: [mg104515] Finding Clusters
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Thu, 5 Nov 2009 03:53:01 -0500 (EST)
- References: <200911030751.CAA01018@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
Brilliant as usual, Fred. I did think intervals only needed to overlap to "correspond", whereas your solution requires them to share an end-point. For instance, in this example the first interval is a subset of the second interval and overlaps with the third, yet "components' associates it with neither. event = {{1, 2} + 1/2, {1, 3}, {3, 4}, {5, 6}, {7, 8}, {8, 10}}; components@event {{1, 3, 4}, {3/2, 5/2}, {5, 6}, {7, 8, 10}} I can't really guess the OP's intent. Bobby On Wed, 04 Nov 2009 00:33:25 -0600, Fred Simons <f.h.simons at tue.nl> wrote: > Here is a very short, very fast but not very simple solution: > > components[lst_List] := Module[{f}, > Do[Set @@ f /@ pair, {pair, lst}]; GatherBy[Union @@ lst, f]] > > Fred Simons > Eindhoven University of Technology >> 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. >> >> >> > -- DrMajorBob at yahoo.com
- Follow-Ups:
- Re: Re: Re: Finding Clusters
- From: Fred Simons <f.h.simons@tue.nl>
- Re: Re: Re: Finding Clusters
- References:
- Finding Clusters
- From: fd <fdimer@gmail.com>
- Finding Clusters