Re: List processing
- To: mathgroup at smc.vnet.net
- Subject: [mg37251] Re: List processing
- From: Mark Westwood <MarkCWestwood at compuserve.com>
- Date: Fri, 18 Oct 2002 05:17:51 -0400 (EDT)
- References: <aokbp7$afv$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
John
The simplest solution to your trial problem that I could come up with
was the following:
Apply[List, Apply[Interval, {{100, 200}, {150, 250}, {120, 270}, {300,
400}}]]
I hope you can figure it out. I didn't test it on a larger input
dataset - my usual experience is that built-in functions are faster for
operations on lists than fiddling around with loops.
Regards
Mark Westwood
John Leary wrote:
>
> Greetings
>
> This problem can be solved by conventional programming, but I wonder if
> there is an elegant Mathematica solution ?
>
> A list contains pairs of values, with each pair representing the lower and
> upper edge of a sub-range. Some of the sub-ranges partially overlap, some
> fully overlap, others don't overlap at all. The problem is to produce a
> second list that contains the overall upper and lower edges of the
> overlapping sub-ranges.
>
> A simple example : {{100,200},{150,250},{120,270},{300,400}} would result
> in {{100,270},{300,400}}.
>
> In the real case, the input list has several hundred elements and the
> output list typically has five elements.
>
> I have a working solution based on loops, but there must be a more elegant
> one. I would be very grateful for any suggestions.
>
> Best regards
>
> John Leary