Re: Multiplying a vector over multiple vectors
- To: mathgroup at smc.vnet.net
- Subject: [mg91183] Re: Multiplying a vector over multiple vectors
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Fri, 8 Aug 2008 07:17:10 -0400 (EDT)
On 8/7/08 at 4:42 AM, donabc at comcast.net (Donald DuBois) wrote: >How does one get a vector to distribute over a list of vectors >under multiplication? >For example: >{{1,2}, {3,4}, {5,6}} times {a,b} should >equal (under this operation) >{{a, 2b}, {3a, 4b}, {5a, 6b}} >If {a,b} is duplicated three times one can use MapThread as in: >MapThread[Times, {{{1, 2}, {3, 4}, {5, 6}}, {{a, b}, {a, b}, {a, >b}}}] >but duplicating {a,b} using Table is very slow when the vectors are >large (consisting of thousands of elemets). Try Map instead of MapThread with a pure function. For example, In[11]:= {a, b} # & /@ {{1, 2}, {3, 4}, {5, 6}} Out[11]= {{a, 2 b}, {3 a, 4 b}, {5 a, 6 b}} Something else that works in this case is In[14]:= List @@@ ({{1, 2}, {3, 4}, {5, 6}}.{a, b}) Out[14]= {{a, 2 b}, {3 a, 4 b}, {5 a, 6 b}} However, given Mathematica often reorders sums this approach probably won't give valid results in general