Re: How to subtract two sets of data for a ListPlot

• To: mathgroup at smc.vnet.net
• Subject: [mg76749] Re: How to subtract two sets of data for a ListPlot
• From: Bill Rowe <readnewsciv at sbcglobal.net>
• Date: Sat, 26 May 2007 04:51:30 -0400 (EDT)

```On 5/25/07 at 6:45 AM, dmilioto at comcast.com (chuck009) wrote:

>Hi all.  Suppose I've calculated two sets of lists of the form for
>example:

>list1={{1,1},{2,2},{3,3}};

>list2={{1,1},{2,4},{3,9}};

>What's an efficient way to create a third list with the same
>x-values but with the y-values subtracted

>newlist={{1,0},{2,-2},{3,-6}};

>I realize I can manually subtract them in a For-loop, but I'm sure a
>one-line command using Map or some other construct can be used as
>well but can't figure it out.

Yes, you definitely want to avoid For loops. Here are two ways.
=46irst using pattern matching

In[3]:= Transpose[{list1, list2}] /. {{a_, b_}, {_, c_}} -> {a,
b - c}

Out[3]= {{1, 0}, {2, -2}, {3, -6}}

second using functional programming

In[4]:= MapThread[{First[#1], Last[#1 - #2]} & , {list1, list2}]

Out[4]= {{1, 0}, {2, -2}, {3, -6}}

And I am sure others will show you still more ways to do the
same thing
--
To reply via email subtract one hundred and four

```

• Prev by Date: Re: What to do in v. 6 in place of Miscellaneous`RealOnly
• Next by Date: Re: Re: Grid
• Previous by thread: Re: How to subtract two sets of data for a ListPlot
• Next by thread: Re: How to subtract two sets of data for a ListPlot