Instantly share code, notes, and snippets.

Embed
What would you like to do?
def to_latex(a,label='A \\oplus B'):
sys.stdout.write('\[ '
+ label
+ ' = \\left| \\begin{array}{'
+ ('c'*a.shape[1])
+ '}\n' )
for r in a:
sys.stdout.write(str(r[0]))
for c in r[1:]:
sys.stdout.write(' & '+str(c))
sys.stdout.write('\\\\\n')
sys.stdout.write('\\end{array} \\right| \]\n')
@josephcslater

This comment has been minimized.

josephcslater commented Oct 15, 2016

An alternative (which I haven't yet posted).

@josephcslater

This comment has been minimized.

josephcslater commented Oct 15, 2016

def to_matrix(a,frmt = '{:1.2f}', arraytype = 'bmatrix'):
"""Returns a LaTeX array
🅰️ numpy array
:returns:
:prints: LaTeX array

Example:
to_matrix(Krm, frmt = '{:1.2f}', arraytype = 'array')
"""
if len(a.shape) > 2:
    raise ValueError('bmatrix can at most display two dimensions')
lines = str(a).replace('[', '').replace(']', '').splitlines()
print(r'\begin{' + arraytype + '}')
for l in lines:
    for num in l.split():
        print(frmt.format(float(num)) + ' ', end="")
        print('& ', end="")
    print(r'\\')
print(r'\end{' + arraytype + '}')
return 

to_matrix(Krm, frmt = '{:1.2f}', arraytype = 'array')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment