On 29-Aug-08 13:00:01, Martin Maechler wrote: >>>>>> "cd" == christophe dutang <[EMAIL PROTECTED]> >>>>>> on Fri, 29 Aug 2008 14:28:42 +0200 writes: > > cd> Yes, I do not cast the first argument as a matrix with > cd> as.matrix function. > cd> Maybe we could detail the error message if the first > cd> argument > cd> is a numeric? > > cd> error(_("'a' is a numeric and must be coerced to a numeric > cd> matrix")); > > Merci, Christophe. Yes, we *could* do that. > Alternatively, I think I will just make it work in that case, > since I see that > qr(), chol(), svd(), solve() all > treat a numeric (of length 1) as a 1 x 1 matrix automatically.
I was about to draw attention to this "inconsistency"! While one is about it, might it not be useful also to do the converse: Treat a 1x1 matrix as a scalar in appropriate contexts? E.g. a <- 4 A <- matrix(4,1,1) B <- matrix(c(1,2,3,4),2,2) a*B # [,1] [,2] # [1,] 4 12 # [2,] 8 16 a+B # [,1] [,2] # [1,] 5 7 # [2,] 6 8 A*B # Error in A * B : non-conformable arrays A+B # Error in A + B : non-conformable arrays Ted. > > cd> Thanks for your answer > De rien! > Martin > > cd> 2008/8/29 Martin Maechler <[EMAIL PROTECTED]> > > >> >>>>> "cd" == christophe dutang <[EMAIL PROTECTED]> > >> >>>>> on Fri, 29 Aug 2008 12:44:18 +0200 writes: > >> > cd> Hi, > cd> In function chol2inv with the option LINPACK set to false > (default), > >> it > cd> raises an error when the matrix is 1x1 matrix (i.e. just a > real) > >> saying > >> > cd> 'a' must be a numeric matrix > >> > >> It is very helpful, but you have to read and understand it. > >> I'm pretty sure you did not provide a 1 x 1 matrix. > >> > >> Here's an example showing how things works : > >> > >> > m <- matrix(4,1,1) > >> > cm <- chol(m) > >> > cm > >> [,1] > >> [1,] 2 > >> > chol2inv(cm) > >> [,1] > >> [1,] 0.25 > >> > > >> > >> Martin Maechler, ETH Zurich > >> > >> > cd> This error is raised by the underlying C function > (modLa_chol2inv in > cd> function Lapack.c). Everything is normal, but I wonder if we > could > >> have > cd> another behavior when we pass a 1x1 matrix. I spent time this > >> morning > cd> finding where was the error, and it was this "problem". > >> > cd> Thanks in advance > >> > cd> Christophe > >> > cd> [[alternative HTML version deleted]] > >> > cd> ______________________________________________ > cd> R-devel@r-project.org mailing list > cd> https://stat.ethz.ch/mailman/listinfo/r-devel > >> > > cd> [[alternative HTML version deleted]] > > cd> ______________________________________________ > cd> R-devel@r-project.org mailing list > cd> https://stat.ethz.ch/mailman/listinfo/r-devel > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -------------------------------------------------------------------- E-Mail: (Ted Harding) <[EMAIL PROTECTED]> Fax-to-email: +44 (0)870 094 0861 Date: 29-Aug-08 Time: 14:16:03 ------------------------------ XFMail ------------------------------ ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel