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>

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

```

• Prev by Date: Re: Bug with Sequence
• Next by Date: Re: what's wrong with these expressions?
• Previous by thread: Re: Finding Clusters
• Next by thread: Re: Re: Re: Finding Clusters