Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

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


  • Prev by Date: Re: Variant of inner Product ...
  • Next by Date: Re: named pattern variable scoped as global, should be local
  • Previous by thread: Re: Variant of inner Product ...
  • Next by thread: Re: Variant of inner Product ...