Re: Adding value to some elements of a list
- To: mathgroup at smc.vnet.net
 - Subject: [mg131047] Re: Adding value to some elements of a list
 - From: David Bailey <dave at removedbailey.co.uk>
 - Date: Thu, 6 Jun 2013 07:28:48 -0400 (EDT)
 - Delivered-to: l-mathgroup@mail-archive0.wolfram.com
 - Delivered-to: l-mathgroup@wolfram.com
 - Delivered-to: mathgroup-outx@smc.vnet.net
 - Delivered-to: mathgroup-newsendx@smc.vnet.net
 - References: <komoi3$1un$1@smc.vnet.net>
 
On 05/06/2013 08:15, Joerg Lenhardt wrote:
> Hello,
>
> I have two lists. One containing values, another containing indexes to
> the first list. I want to add a value to all elements of the first list
> when its index is in the second list:
>
> a={10,20,30,40,50,60}
>
> b={2,4,6}
>
> c=17
>
> ==>
>
> {10,20+17,30,40+17,50,60+17}
>
> I would be glad if anyone have a simple solution for that problem - I am
> convinced there is one ...
>
> Best regards
> J. Lenhardt
>
In[1]:= a = {10, 20, 30, 40, 50, 60};
b = {2, 4, 6};
c = 17;
In[4]:= ans = a;
In[5]:= ans[[b]] = ans[[b]] + c;
In[6]:= ans
Out[6]= {10, 37, 30, 57, 50, 77}
To understand this better, remember that [[.....]] is a shorthand for 
Part - so look that function up.
David Bailey
http://www.dbaileyconsultancy.co.uk