[R] Matrix multiplication by multple constants

Greg Snow 538280 at gmail.com
Fri Apr 20 19:22:23 CEST 2012

```And another way is to remember properties of matrix multiplication:

y %*% diag(x)

On Fri, Apr 20, 2012 at 8:35 AM, David Winsemius <dwinsemius at comcast.net> wrote:
>
> On Apr 20, 2012, at 4:57 AM, Dimitris Rizopoulos wrote:
>
>> try this:
>>
>> x  <- 1:3
>> y  <- matrix(1:12, ncol = 3, nrow = 4)
>>
>> y * rep(x, each = nrow(y))
>
>
> Another way with a function specifically designed for that purpose:
>
> sweep(y, 2, x, "*")
>
> -- David.
>
>
>>
>>
>> I hope it helps.
>>
>> Best,
>> Dimitris
>>
>>
>> On 4/20/2012 10:51 AM, Vincy Pyne wrote:
>>>
>>> Dear R helpers
>>>
>>> Suppose
>>>
>>> x<- c(1:3)
>>>
>>> y<- matrix(1:12, ncol = 3, nrow = 4)
>>>
>>>> y
>>>
>>>     [,1] [,2] [,3]
>>> [1,]    1    5    9
>>> [2,]    2    6   10
>>> [3,]    3    7   11
>>> [4,]    4    8   12
>>>
>>> I wish to multiply 1st column of y by first element of x i.e. 1, 2nd
>>> column of y by 2nd element of x i.e. 2 an so on. Thus the resultant matrix
>>> should be like
>>>
>>>> z
>>>
>>>
>>>     [,1]   [,2]    [,3]
>>>
>>> [1,]    1    10    27
>>>
>>> [2,]    2    12    30
>>>
>>> [3,]    3    14    33
>>>
>>> [4,]    4    16    36
>>>
>>>
>>> When I tried simple multiplication like x*y, y is getting multiplied
>>> column-wise
>>>
>>>> x*z
>>>
>>>      [,1] [,2] [,3]
>>> [1,]    1    5    9
>>> [2,]    4   12   20
>>> [3,]    9   21   33
>>> [4,]   16   32   48
>>>
>>>
>>> Kindly guide
>>>
>>> Regards
>>>
>>> Vincy
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>>
>>>
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>> --
>> Dimitris Rizopoulos
>> Assistant Professor
>> Department of Biostatistics
>> Erasmus University Medical Center
>>
>> Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
>> Tel: +31/(0)10/7043478
>> Fax: +31/(0)10/7043014
>> Web: http://www.erasmusmc.nl/biostatistiek/
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
>
> David Winsemius, MD
> West Hartford, CT
>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help