Re: Variant of inner Product ...
- To: mathgroup at smc.vnet.net
- Subject: [mg56749] Re: [mg56683] Variant of inner Product ...
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Thu, 5 May 2005 06:01:30 -0400 (EDT)
- References: <200505040432.AAA06099@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On May 4, 2005, at 12:32 AM, Detlef Müller at smc.vnet.net wrote:
> Hello,
>
> I have the following to do:
>
> Given
>
> In[1]:= A={1,2,3}; B={{a,b},{c,d},{r,s}};
>
> And a Function f, I like to have
>
> Out[2] = {f[1,a],f[1,b]}+{f[2,c],f[2,d]}+{f[3,r],f[3,s]}
>
> The trial
>
> In[8]:=A={1,2,3}; B={{a,b},{c,d,e},{r,s}};
> In[9]:= Inner[f,A,B]
> Out[9]= f[1,{a,b}]+f[2,{c,d,e}]+f[3,{r,s}]
>
> looks promising,
> but if the Lists in B have the same length, "Inner"
> makes something different:
>
> In[15]:=
> A={1,2,3}; B={{a,b},{c,d},{r,s}}; Inner[f,A,B]
>
> Out[16]= {f[1,a]+f[2,c]+f[3,r],f[1,b]+f[2,d]+f[3,s]}
>
> So for now I have an ugly Table-Construction doing the job,
> but I can't imagine there is no elegant and clear solution
> for this ... any suggestions?
This construction is very specific to your problem, and it relies upon
realizing that
{f[1,a],f[1,b]}+{f[2,c],f[2,d]}+{f[3,r],f[3,s]}
is equivalent to
{f[1, a] + f[2, c] + f[3, r], f[1, b] + f[2, d] + f[3, s]}
due to the attributes of Plus but
Plus @@ (Thread[
f[#1, #2]] & @@@ Transpose[{A, B}])
does what you want.
Regards,
Ssezi
- References:
- Variant of inner Product ...
- From: Detlef Müller@smc.vnet.net
- Variant of inner Product ...