Re: Multiplying a vector over multiple vectors
- To: mathgroup at smc.vnet.net
- Subject: [mg91199] Re: Multiplying a vector over multiple vectors
- From: Ray Koopman <koopman at sfu.ca>
- Date: Sat, 9 Aug 2008 07:45:34 -0400 (EDT)
- References: <g7ed6u$2pm$1@smc.vnet.net>
In[1]:= m = Table[Random[Integer,{-100,100}],{10^5},{2}];
First@Timing[p = Transpose[{a,b} Transpose@m];]
First@Timing[q = Transpose[{a m[[All,1]], b m[[All,2]]}];]
First@Timing[r = Inner[Times,m,{a,b},List];]
SameQ[p,q,r]
Out[2]= 0.7 Second
Out[3]= 0.71 Second
Out[4]= 0.55 Second
Out[5]= True
On Aug 7, 1:53 am, Donald DuBois <don... at comcast.net> 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).
>
> Thanks in advance for any help you can give me.
>
> Don