Here is a function to convert the LaTeX string of a matrix
into a Sage matrix.
The function includes a bit of documentation with an example.
def matrix_from_latex(mat):
r"""
Return a Sage matrix corresponding to this LaTeX matrix.
Convert the LaTeX string for a matrix with integer entries
into a Sage matrix.
EXAMPLE:
Convert a Sage matrix to LaTeX and back::
sage: a = matrix([[0, 1, 2], [1, 0, 3], [4, -3, 8]])
sage: a
[ 0 1 2]
[ 1 0 3]
[ 4 -3 8]
sage: b = latex(a)
sage: print(b)
\left(\begin{array}{rrr}
0 & 1 & 2 \\
1 & 0 & 3 \\
4 & -3 & 8
\end{array}\right)
sage: c = matrix_from_latex(b)
sage: c
[ 0 1 2]
[ 1 0 3]
[ 4 -3 8]
"""
bits = [r'\left(\begin{array}', r'\end{array}\right)', 'r', '{}']
for b in bits:
mat = mat.replace(b, '')
row = mat.split(r'\\')
return matrix([[ZZ(a) for a in row.split('&')] for row in rows])
To start directly from a string such as in a comment to the question:
sage: z = r'\left(\begin{array}{rrr}0 & 1 & 2 \\ 1 & 0 & 3 \\ 4 & -3 & 8 \end{array}\right)'
sage: matrix_from_latex(z)
[ 0 1 2]
[ 1 0 3]
[ 4 -3 8]
Note that the function provided above works for matrices with integer entries.
It could be adapted to more general entries.
Well, yes, but there are many ways to typeset matrices in LaTeX. Can you give some example(s) which you want to convert?
Thanks a lot for replying my question.
Are you able to give me some reference to read?