|
[Date Index]
[Thread Index]
[Author Index]
Re: Need to reduce 2 lists so that only {x,y} pairs with same x remain
- To: mathgroup at smc.vnet.net
- Subject: [mg24186] Re: [mg24134] Need to reduce 2 lists so that only {x,y} pairs with same x remain
- From: Daniel Lichtblau <danl at wolfram.com>
- Date: Wed, 28 Jun 2000 22:51:07 -0400 (EDT)
- References: <200006280611.CAA13359@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
materialsscientist at my-deja.com wrote:
>
> Hello,
>
> I have 2 lists of data:
>
> for example
> data1={{1,1},{1.5,1.5},{2,2},{3,3},{4,4},{5,5}}
>
> data2={{1,2},{2,3},{3,4},{4,5},{6,7},{7,8}}
>
> I want to do a point by point comparision, so I
> need to reduce both data1 and data2 so that
> common x data in the {x,y} pairs for each list
> remain.
>
> Thus the lists should look like this:
>
> data1={{1,1},{2,2},{3,3},{4,4}}
> data2={{1,2},{2,3},{3,4},{4,5}}
>
> What function(s) would to something like this?
>
> Thanks,
>
> Chuck
>
> Sent via Deja.com http://www.deja.com/
> Before you buy.
This will work.
In[9]:= d1a = Complement[data1, data2, SameTest->(#1[[1]]==#2[[1]]&)];
In[10]:= d1b = Complement[data1, d1a]
Out[10]= {{1, 1}, {2, 2}, {3, 3}, {4, 4}}
Do similarly to get the reduced version of data2.
A more efficient method:
In[11]:= d1c = Intersection[data1, data2, SameTest->(#1[[1]]==#2[[1]]&)]
Out[11]= {{1, 1}, {2, 2}, {3, 3}, {4, 4}}
In[12]:= d2c = Intersection[data2, data1, SameTest->(#1[[1]]==#2[[1]]&)]
Out[12]= {{1, 2}, {2, 3}, {3, 4}, {4, 5}}
A potential problem is that I'm not sure the language semantics
guarantee that this will always work, if, for example, internals of
Intersection implementation are changed.
Daniel Lichtblau
Wolfram Research
Prev by Date:
Re: TableForm
Next by Date:
RE: Need to reduce 2 lists so that only {x,y} pairs with same x remain
Previous by thread:
Need to reduce 2 lists so that only {x,y} pairs with same x remain
Next by thread:
Re: Need to reduce 2 lists so that only {x,y} pairs with same x remain
|