Re: List Manipulation
- To: mathgroup at smc.vnet.net
- Subject: [mg72430] Re: List Manipulation
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Wed, 27 Dec 2006 06:19:21 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <emo866$g29$1@smc.vnet.net>
Stratocaster wrote: > I'm not sure if the following is possible or whether it exists somewhere > between the realms of fantasy and science fiction. I have been unable to do > it. > > Given a list, set, vector (whatever you want to call it) consisting of > functions of the same variable, i.e. > > list = {a1+b1*k, a2+b2*k, a3+b3*k...} > > Assuming they are all linear (of the form a+b*k) is there away to isolate > the a_i and b_i values? Essentially I would like to get a list "A" > consisting of all the intercept values, and a list "B" consisting of all the > slope values. > > Is this possible? What kind of operations do I need to use to accomplish > this (if indeed it is possible)? > > Thanks for any insights. > Among many other possibilities, you could try one of the following: In[1]:= list = {a1 + b1*k, a2 + b2*k, a3 + b3*k} Out[1]= {a1 + b1*k, a2 + b2*k, a3 + b3*k} In[2]:= (Select[#1, FreeQ[#1, k] & ] & ) /@ list Out[2]= {a1, a2, a3} In[3]:= (Select[#1, !FreeQ[#1, k] & ] & ) /@ list/k Out[3]= {b1, b2, b3} In[4]:= list /. (p_) + (q_)*k -> p Out[4]= {a1, a2, a3} In[5]:= list /. (p_) + (q_)*k -> q Out[5]= {b1, b2, b3} Happy holidays, Jean-Marc