On Sep 7, 6:30 am, "John Cremona" <[EMAIL PROTECTED]> wrote: > It should be lightly easier than it is to convert a vector of length n > to either an nx1 matrix or a 1xn matrix: > > sage: v = vector(srange(5)) > sage: v > (0, 1, 2, 3, 4) > sage: matrix(QQ,1,5,[v]) > [0 1 2 3 4] > sage: matrix(QQ,5,1,list(v)) > > [0] > [1] > [2] > [3] > [4] > > I got neither of those right the first time! I know that v*v is short > for the dot product, which is also (row v)*(col v), but sometimes one > wants (col v)*(row v) as a rank 1 nxn matrix: > > sage: matrix(QQ,5,1,list(v)) * matrix(QQ,1,5,[v]) > > [ 0 0 0 0 0] > [ 0 1 2 3 4] > [ 0 2 4 6 8] > [ 0 3 6 9 12] > [ 0 4 8 12 16] > > I suggest that vector methods row_matrix() and col_matrix() would be useful.
It might be nice to have row_matrix() and col_matrix(), as you suggest, but you can do the conversions right now like this: sage: matrix(v) [0 1 2 3 4] sage: transpose(v) [0] [1] [2] [3] [4] sage: parent(transpose(v)) Full MatrixSpace of 5 by 1 dense matrices over Integer Ring # This is a bug, I guess sage: matrix(transpose(v)) Traceback (most recent call last) ... TypeError: _matrix_() takes exactly one argument (0 given) sage: matrix(QQ,v) [0 1 2 3 4] sage: matrix(QQ,transpose(v)) [0] [1] [2] [3] [4] Regards, JM --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-support@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---