row*matrix
On Aug 6, 2011, at 4:35 PM, smajor wrote:
Hi all, I'm learning R. I'm used to Matlab and am having the
following issue:
I define a column vector and matrix and then multiply them. The
result is
not what I expect:
v2 <- c(0,1,0)
M <- cbind(c(1,4,7),c(2,5,8),c(3,6,9))
M*v2
[,1] [,2] [,3]
[1,] 0 0 0
[2,] 4 5 6
[3,] 0 0 0
I expect the result to be a column, specifically the 2nd column of M.
Now I want to left multiply the matrix by a row vector, and I get
errors:
t(v2)*M
Error in t(v2) * M : non-conformable arrays
V2 <- t(v2) V2*M
Error in V2 * M : non-conformable arrays I would expect to get the 2nd row of M as an output. Why am I not getting a column for the first case? Why is the second case causing errors? Any help would be greatly appreciated. I can get the
Vector are not column or row vectors by default. They don't actually
have a dim attribute unless you force one on them. Also you are using
a scalar operator and need to use "%*%" to do matrix
multiplication .... so:
> dim(v2) <-c(1,3)
> v2%*%M
[,1] [,2] [,3]
[1,] 4 5 6
As expected. So now you should go back to your introductory material
as well as help("%*%") and help("*").
David Winsemius, MD West Hartford, CT