row*matrix

5 messages
Open this post in threaded view
|

row*matrix

 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
Open this post in threaded view
|

Re: 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 ______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

Re: row*matrix

 In reply to this post by smajor Hi, You are using the regular multiplication operator, when you want the matrix multiplication operator.  Compare: > M * v2      [,1] [,2] [,3] [1,]    0    0    0 [2,]    4    5    6 [3,]    0    0    0 > M %*% v2      [,1] [1,]    2 [2,]    5 [3,]    8 See ?"*" and ?"%*%" HTH, Josh On Sat, Aug 6, 2011 at 1:35 PM, smajor <[hidden email]> 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 > > -- > View this message in context: http://r.789695.n4.nabble.com/row-matrix-tp3724023p3724023.html> Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > [hidden email] 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. > -- Joshua Wiley Ph.D. Student, Health Psychology Programmer Analyst II, ATS Statistical Consulting Group University of California, Los Angeles https://joshuawiley.com/______________________________________________ [hidden email] mailing list https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.