# Nice display of a list of "matrices"

In the context of graphs I have seen that it is possible to display in a very nice picture of all graphs in a certain list using for instance the following code:

sage: G = GraphQuery(display_cols=['graph6'], num_vertices=7, diameter=5)
sage: L = G.get_graphs_list()
sage: graphs_list.show_graphs(L)


The output one gets is the picture

I would like to get the same output display but this time using a diferent kind of objects (instead of graphs), namely matrices for the sake of this question. So, here is the question: suppose you have a list L of matrices, for example the one defined by

sage: L=[ MatrixSpace(ZZ,3).random_element() for i in [0..8]]


Is there some way to obtain a picture of the same kind than before except for replacing the graphs with the display of each one of the matrices in L?

edit retag close merge delete

Sort by ยป oldest newest most voted

You could define a function to produce a latex array (or tabular):

def matrix_array(L,ncols):
nl = '\n'
s = nl + r'\begin{array}{' + ('c' * ncols) + r'}' + nl
for k in xrange(len(L)):
if k%ncols != 0: s += '&' + nl
s += str(latex(L[k])) + nl
if ((k+1)%ncols == 0) or (k == len(L)):
s += r'\\' + nl
s += r'\end{array}' + nl
return LatexExpr(s)


and then view it:

sage: L = [MatrixSpace(ZZ,3).random_element() for i in [0..8]]
sage: view(matrix_array(L,ncols=3))

more

Thanks. Your answer has really helped me.

( 2014-01-31 04:20:28 -0600 )edit

Just another suggestion:

L = [random_matrix(ZZ,2,2) for k in range(20)]
def list_of_lists(L,ncol):
return [L[k:k+ncol] for k in range(0,len(L),ncol)]
html.table(list_of_lists(L,5))

more

Thanks. Is there some easy way to get the output in pdf format (or in png, jpg)? I ask this because later I want to use this output inside a paper I am writing using LaTeX.

( 2014-02-02 21:07:02 -0600 )edit
1

https://bitbucket.org/whuss/sws2tex/

( 2014-02-03 02:07:12 -0600 )edit