Multiply each element in a vector by itself to create a matrix
matrix, multiplication, r
Solution
Like this:
x %o% x
which is a shortcut for
outer(x, x)
You can also do
tcrossprod(x)
Problem
I'm trying to multiply each element in a vector by itself such that it produces a matrix that is symmetric about the diagonal. For example, given this vector:: ``` x <- 1:3 ``` I would like to create this: ``` 1 2 3 2 4 6 3 6 9 ``` i.e: ``` x[1]*x[1] x[2]*x[1] x[3]*x[1] x[1]*x[2] x[2]*x[2] x[3]*x[2] x[1]*x[3] x[2]*x[3] x[3]*x[3] ``` Any help would be greatly appreciated. Thanks.