On 30/09/15 12:49, waddawanna wrote:
Hello Steven,

It looks like, there is no in-built function that can do GAUSS ".*"
element-wise multiplication.
Now, if you want to make the desired computations in R, it is actually
preatty straightforward.

a<-c(1,2,3)
b<-matrix(rep(1:9,1),3,3,byrow=TRUE)
a*b

That, should work fine. But, suppose that for some reason you have following
situation, which can make you trip for hours of sleepless nights. That is,
you have a matrix "b", where number of columns equal to number of columns of
your vector "a". That is

b<-matrix(rep(1:9,1),3,3,byrow=TRUE);b
      [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
[3,]    7    8    9

a <- matrix(rep(1:3,1),1,3,byrow=TRUE)
      [,1] [,2] [,3]
[1,]    1    2    3

If you try to do elementwise multilication, i.e., of those two
b*a

You get an error that they are not comfomable, that is why, you have to
write your own function (here,
I just write the for-loop):
for ( i in 1:3 ) {
      foo[ ,i] = ( foo[ ,i] * bar[1,i] ) ;
    }
        [,1] [,2] [,3]
[1,]    1    4    9
[2,]    4   10   18
[3,]    7   16   27

I hope that this helped.


(1) You're making heavy weather by using rep() totally unnecessarily.


(2) The example you give can be done much more succinctly; for-loops
are unnecessary:

   t(as.vector(a)*t(b))

(3) Please don't post to R-help via nabble (WTF ever that is). It messes up everything.

cheers,

Rolf Turner

--
Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to