Skip to content

Matrix multiplication

4 messages · Steven Yen, Jeff Newmiller

#
I need to have all elements of a matrix multiplied by a weight before 
being post-multiplied by itself, as shown in the forst block of codes 
below. I can also multiply the matrix by the square root of the weight 
and then take the outer product.

Actually, what I need is this. Denote each row of the matrix by a row 
vector as xi and each element of the weighting vector as wi. Then, I 
need the sum of wi * t(xi) %*% xi over i.

Any suggestion for a compact approach would be appreciated.

set.seed(76543211)
w<-1:10; w
a<-matrix(rpois(20,2),nrow=10); a
b<-a
a<-w*a
t(a)%*%b

set.seed(76543211)
a<-matrix(rpois(20,2),nrow=10); a
a<-sqrt(w)*a; a
t(a)%*%a
On 1/4/2017 5:41 PM, Steven Yen wrote:

  
  
#
Is this a question? You seem to have three possible calculations, have already implemented two of them (?) and it is unclear (to me) what you think the right answer for any of them is supposed to be.
#
OK Thanks. Your response made me think. Here (the last line) is what I need:

set.seed(76543211)
w<-1:10; w
a<-matrix(rpois(20,2),nrow=10); a
t(w*a)%*%a
On 6/8/2017 12:09 PM, Jeff Newmiller wrote:

  
  
#
Fine,  except that you already seen to have a very compact solution if that really is what you are looking for. What am I missing?