通过Python轻松把矩阵转换成latex代码
最近在学着使用LATEX。最让我头疼的是写矩阵了。
要打这样一个矩阵:
LATEX的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | \left(\begin{array}{cccccccccccc} 4 & 1 & 1 & 6 & 2 & 2 & \frac{1}{3} & 1 & 5 & 1 & 0 & 0\\ 1 & 4 & 1 & 2 & 1 & 2 & 1 & 1 & 2 & 1 & 0 & 0\\ 1 & 1 & 4 & 2 & 2 & 3 & 1 & 2 & 1 & 2 & 0 & 0\\ \frac{1}{6} & \frac{1}{2} & \frac{1}{2} & 4 & 1 & 1 & \frac{1}{3} & 1 & 1 & 1 & 0 & 0\\ \frac{1}{2} & 1 & \frac{1}{2} & 1 & 6 & 1 & 0 & 0 & 0 & 0 & 1 & 1\\ \frac{1}{2} & \frac{1}{2} & \frac{1}{3} & 1 & 1 & 7 & 0 & 0 & 0 & 0 & 0 & 1\\ 3 & 1 & 1 & 3 & 0 & 0 & 4 & 4 & 6 & 4 & 2 & 2\\ 1 & 1 & \frac{1}{2} & 1 & 0 & 0 & \frac{1}{4} & 4 & \frac{1}{2} & 1 & 2 & 1\\ \frac{1}{5} & \frac{1}{2} & 1 & 1 & 0 & 0 & \frac{1}{6} & 2 & 4 & 4 & 2 & 2\\ 1 & 1 & \frac{1}{2} & 1 & 0 & 0 & \frac{1}{4} & 1 & \frac{1}{4} & 4 & 2 & 2\\ 0 & 0 & 0 & 0 & 1 & 0 & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & \frac{1}{2} & 7 & 1\\ 0 & 0 & 0 & 0 & 1 & 1 & \frac{1}{2} & 1 & \frac{1}{2} & \frac{1}{2} & 1 & 6 \end{array}\right) |
当时,MATLAB已经给我了一个矩阵,但是一想到要在矩阵的相邻两个元素间加“&”符号,每行结束加“\\"符号,要把所有的分数也要改成"\frac{*}{*}"的格式。要我把它手工做完是一件不可想象的事情。
于是,查了PYTHON的一些资料后,自己动手写了一个PYTHON的程序。
准备工作:先把matlab生成的矩阵,粘贴到记事本中,保存为A.txt。假设其路径为C:/Study/A.txt
PYTHON代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import re f=open('C:/Study/A.txt','r') content=f.read() f.close() for i in [3,2]: content=content.replace(' '*i,' ') content=content.replace(' \n ','\\\\\n') content=content.replace(' ',' & ') fraction_re=re.compile(r"(?P<numerator>\d+)/(?P<denominator>\d+)") content=fraction_re.sub(r"\\frac{\g<numerator>}{\g<denominator>}",content) content=content[3:-3] print(content) f=open('C:/Study/b.txt','w') f.write(content) f.close |
运行完程序后,打开b.txt。复制粘贴即可。
鉴于我是初学PYTHON,所以很多函数不是很熟。写完这个程序,基本上可以了解PYTHON关于文件的读写操作,字符串的查找和替换,以及正则表达式的应用。
不过这个程序的特殊性很强,如何能把任意一个MATLAB中的矩阵转换为LATEX代码,还需要研究一下。(请看矩阵、表格转换成latex表格通用版Python程序)
)
原创文章,转载请注明: 转载自ELLY66
本文链接地址: 通过Python轻松把矩阵转换成latex代码
文章的脚注信息由WordPress的wp-posturl插件自动生成
Evernote lets you save all the interesting things you see online into a single place. Access all those saved pages from your computer, phone or the web. Sign up now or learn more. It's free!
2010年08月20日 19:34
这个用MathType的转成TeX的转换器就可以完成了。
2010年08月23日 13:28
呵呵,不错哦,改天我试试看