Is there a way to get all the k-minors of a matrix as a list of
matrices? Currently there is a method M.minors(2), but this only
produces the list of determinants. What about the matrices themselves?
Obviously, Sage must have them somewhere internally to compute the
determinants, but how to get access to them?
Best regards,
Jan
sage: M.minors??
(you need to have defined M beforehand).
By browsing at that source one can easily find the general way of
doing it:
sage: A = Matrix(QQ, 3, [1,2,3,4,5,6,7,8,9])
sage: [A.matrix_from_rows_and_columns(rows, cols) for cols in
combinations_iterator(range(A.ncols()), 2) for rows in
combinations_iterator(range(A.nrows()),2)]
[
[1 2] [1 2] [4 5] [1 3] [1 3] [4 6] [2 3] [2 3] [5 6]
[4 5], [7 8], [7 8], [4 6], [7 9], [7 9], [5 6], [8 9], [8 9]
]
Cheers
J
Or slightly easier to read:
sage: A = Matrix(QQ, 3, [1,2,3,4,5,6,7,8,9])
sage: [A[rows,cols] for cols in Combinations(A.ncols(),2) for rows in
Combinations(A.nrows(),2)]
[
[1 2] [1 2] [4 5] [1 3] [1 3] [4 6] [2 3] [2 3] [5 6]
[4 5], [7 8], [7 8], [4 6], [7 9], [7 9], [5 6], [8 9], [8 9]
]
Thanks,
Jason
--
Jason Grout
--
To post to this group, send email to sage-s...@googlegroups.com
To unsubscribe from this group, send email to sage-support...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-support
URL: http://www.sagemath.org
You can upgrade your sage in order to take advantage of the nice
printing you saw in our output:
sage: A = Matrix(QQ, 2,3, [1,2,3,4,5,6]);A
[1 2 3]
[4 5 6]
sage: res=[A[rows,cols] for cols in Combinations(A.ncols(),2) for rows
in Combinations(A.nrows(),2)];res
[
[1 2] [1 3] [2 3]
[4 5], [4 6], [5 6]
]
sage: [det(m) for m in res]
[-3, -6, -3]
Thanks,
Jason
Yes, definitely uninstall the Ubuntu sagemath package and install a
newer version.
Jason
Jason