Message-ID: <CAAmySGM2+G8e27UPbKyvLvvvGD=KbhQBA2KLzFgVrZKk8VxCgw@mail.gmail.com>
Date: 2011-11-06T04:21:34Z
From: R. Michael Weylandt
Subject: Matrix element-by-element multiplication
In-Reply-To: <3a6945a1-67cc-4a87-b795-542e67942f98@kedge2.utk.tennessee.edu>
There are a few (nasty?) side-effects to c(), one of which is
stripping a matrix of its dimensionality. E.g.,
x <- matrix(1:4, 2)
c(x)
[1] 1 2 3 4
So that's probably what happened to you. R has a somewhat odd feature
of not really considering a pure vector as a column or row vector but
being willing to change it to either:
e.g.
y <- 1:2
x %*% y
y %*% x
y %*% y
while matrix(y) %*% x throws an error, which can also trip folks up.
You might also note that x * y and y*x return the same thing in this
problem.
Getting back to your problem: what are v and b and what are you hoping
to get done? Specifically, what happened when you tried v*b (give the
exact error message). It seems likely that they are non-conformable
matrices, but here non-conformable for element-wise multiplication
doesn't mean the same thing as it does for matrix multiplication.
E.g.,
x <- matrix(1:4,2)
y <- matrix(1:6,2)
dim(x)
[1] 2 2
dim(y)
[1] 2 3
x * y -- here R seems to want matrices with identical dimensions, but
i can't promise that.
x %*% y does work.
Hope this helps and yes I know it can seem crazy at first, but there
really is reason behind it at the end of the tunnel,
Michael
On Sun, Nov 6, 2011 at 12:11 AM, Steven Yen <syen at utk.edu> wrote:
> My earlier attempt
>
> ?? dp <- v*b
>
> did not work. Then,
>
> ?? dp <- c(v)*b
>
> worked.
>
> Confused,
>
> Steven
>
> At 09:10 PM 11/4/2011, you wrote:
>
> Did you even try?
>
> a <- 1:3
> x <-? matrix(c(1,2,3,2,4,6,3,6,9),3)
> a*x
>
> ???? [,1] [,2] [,3]
> [1,]??? 1??? 2??? 3
> [2,]??? 4??? 8?? 12
> [3,]??? 9?? 18?? 27
>
> Michael
>
> On Fri, Nov 4, 2011 at 7:26 PM, Steven Yen <syen at utk.edu> wrote:
>> is there a way to do element-by-element multiplication as in Gauss
>> and MATLAB, as shown below? Thanks.
>>
>> ---
>> a
>>
>>??????? 1.0000000
>>??????? 2.0000000
>>??????? 3.0000000
>> x
>>
>>??????? 1.0000000??????? 2.0000000??????? 3.0000000
>>??????? 2.0000000??????? 4.0000000??????? 6.0000000
>>??????? 3.0000000??????? 6.0000000??????? 9.0000000
>> a.*x
>>
>>??????? 1.0000000??????? 2.0000000??????? 3.0000000
>>??????? 4.0000000??????? 8.0000000??????? 12.000000
>>??????? 9.0000000??????? 18.000000??????? 27.000000
>>
>>
>> --
>> Steven T. Yen, Professor of Agricultural Economics
>> The University of Tennessee
>> http://web.utk.edu/~syen/
>>??????? [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
> --
> Steven T. Yen, Professor of Agricultural Economics
> The University of Tennessee
> http://web.utk.edu/~syen/