找回密码
 注册
关于网站域名变更的通知
查看: 454|回复: 1
打印 上一主题 下一主题

Matlab中巧用LaTex

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-14 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
Matlab中巧用LaTex* u7 e# t8 p  }. I/ o4 j
众所周知,大多数科研工作者(大Boss或者象我们一样的学术打工仔)都会用到Matlab生成图片,图片的title或者legend最好有相应的说明,经常用到公式,比方说α,β等。但大多数人往往是利用图像后处理软件如Photoshop或illustrator等对生成的图片进行加工。
4 w. M% `+ w, yLatex是被公认的生成公式最漂亮的排版语言(软件),成为事实上学术排版的标准。那么能否利用latex生成公式插入到Matlab生成的图片中呢?答案是肯定的。
, i$ S" M" v4 O, D! [4 SMatlab带有Latex解析器,能支持latex的各种符号,比如积分符号等等
1 X$ h2 l: F7 m5 y+ ]  u$ Y" C: X. Q- p- T! M  q" k

0 {6 m# }. y' X' q" {& K# DMatlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性有三个属性:latex 、tex、none。默认为tex。
  i7 f# H- q' N: K# ~2 q当键入:>> set(text,'Interpreter'); h, @% A) g# M% |/ D
Matlab将返回'Interpreter'所包含的属性值:8 B" H/ K, J9 E7 M- C
[ latex | {tex} | none ]。  i, c. F2 L1 k  O: ~6 g
利用Matlab文本的Interpreter属性使我们能在图形中显示一个较为复杂的公式,例如在公式中除了有希腊字母外,还有分号、根号等数学符号。
' \, o/ C" c9 ]& K& lTex的用法在Matlab的帮助文档里有详细介绍,这里主要介绍一下如何采用latex编辑公式。
6 s) u6 @7 Z$ [$ n2 ]% h. D在matlab中,Latex编辑公式的基本格式:
. z0 e3 w9 a  g4 P/ U1 g, r1、(   LaTeX命令  )# E7 ^' w" I! k7 m/ ]* U4 w
2、$   LaTeX命令  $) k3 ?. Q6 [  [" e; k# R
3、$$  LaTeX命令  $$7 S7 }0 E  \# [' i
- P0 T$ O& h5 y+ _$ |: f+ y
1. 在图象中直接加字符,很简单。
% P' C7 ~, i; {: Y3 k6 ~0 \text('Interpreter','latex','String','$$sqrt{x^2+y^2}$$','Position',[.5.5],… 'FontSize',16);
6 T$ R' b) @0 a# |; [1 g; @0 P& @( \2.  在legend里加数学字符  & h. t" h3 g3 E" D2 R2 t
h=legend('$$sqrt{x^2+y^2}$$');
+ `/ v5 F8 _& Y5 k$ `2 \# F9 E+ Xset(h,'Interpreter','latex')
4 i" A' Y2 A. G  @4 Z9 u4 B以Matlab图形中的textbox属性为例,首先在图形中输入一个双重积分,然后输入一个Schrodinger方程。命令为:1 @6 }1 c, J% y* r
输出结果为
" c) w4 Z$ `# t+ h- k  |2 a* l
$ ]  ^$ a4 A$ X  t当然也可以使用( )命令。以此类推也可以对title、xlabel、ylabel、zlabel和legend等使用LaTeX命令,如:
& c! K5 G1 V& R# Mxlabel({'$int_0^x!int_y dF(u,v)$'},'Interpreter','latex')2 b9 V; ^1 |7 h  c6 k
至于LaTeX命令使用方法可以参考LaTeX教程。
* Y" V. E, k8 K3 T. X
9 u2 z3 Y1 g4 T2 W) N" Z7 }" {  I3 G/ @
另外,Matlab可以吧计算结果转化成Latex格式,对于Matlab计算出的符号运算结果,可以通过latex()函数转化成LeTeX命令格式。由于latex()函数只对符号表达式进行转换,对于数值结果一定要通过sym()函数转化成符号结果。所以,为防止对数值结果转化出错,可同时使用latex()和sym()函数:latex(sym(s)); 其中s代表符号表达式。% b4 {% [5 W# B* {4 u6 f

" ?! Z- Z8 ?7 Z: ~3 O例如:>>syms a b c# f7 C1 j- J6 V% \
s=a/b+c
3 g; l8 b3 A8 _- V使用latex(s)后转化为LeTeX命令:  C6 d1 s; m/ a2 G& i8 e
{frac {a}{b}}+c4 ?* ]1 r2 @5 A
Tex字符在输出一些数学公式时经常使用,它只能由类型为text的对象创建。函数title、xlabel、ylabel、zlabel或text都能 创建一个text对象,因此Tex字符转义符(带“”的字符串)经常作为这些函数的输入参数。如果要输出希腊字母,可以使用texlabel函数将希腊 字母的变量名转化为希腊字母的函数,供函数title、xlabel、ylabel、zlabel或text使用。texlabel转换MATLAB表达式为等价的Tex格式字符串。它处理希腊字母的变量名为实际显示的希腊字母字符串。希腊字母的变量名为“”后面的字符串。
. N; G- T9 @3 g" G6 ATex字符及其函数表" d% {  H8 z5 x. S5 E
函数字符        代表符号        函数字符        代表符号        函数字符        代表符号3 t( M) F1 E6 L/ Q: h. L& M) f$ n
alpha        α        upsilon        υ        sim        ~
0 G7 P) E  o3 F5 Dbeta        β        phi        ϕ        leq        ≤) E# t- v7 |* n
gamma        γ        chi        χ        infty        ∞& J- l0 i6 ]" S
delta        δ        psi        ψ        clubsuit         
+ P2 L1 }3 _  m# T2 F# W6 k4 ^8 ~epsilon        ϵ        omega        ω        diamondsuit         1 s# Q. j8 a% \1 P
zeta        ζ        Gamma        Γ        heartsuit         6 b9 t1 T7 O; a
eta        η        Delta        Δ        spadesuit         , M/ l0 _. B1 k: ~9 E* s2 T
theta        θ        Theta        Θ        leftrightarrow        ↔5 U1 O4 }) ?) w. v% d% r( j
vartheta        ϑ        Lambda        Λ        leftarrow        ←2 p5 r8 o+ W6 i" J5 p3 p% l& Z
IoTa        ι        Xi        Ξ        uparrow        ↑4 ]/ o8 h& ]: d
kappa        κ        Pi        Π        rightarrow        →
' I; B' G. [) z8 {lambda        λ        Sigma        Σ        downarrow        ↓
  ^# K% n9 V# ?3 I* Rmu        μ        Upsilon        Υ        circ        °
7 n4 p' r: o" n) y. G2 [$ i& Y8 Nnu        ν        Phi        Φ        pm        ±2 K% Z: B2 e/ v' u0 w4 @+ [
xi        ξ        Psi        Ψ        geq        ≥
6 ]& p! E/ v" i# N& p& S8 Xpi        π        Omega        Ω        propto        ∝
, Q1 e  N, l0 w8 t+ hrho        ρ        forall        ∀        partial        ∂7 R- R) `& J9 h' B6 z3 v
sigma        σ        exists        ∃        bullet        ∙- B1 w; E5 S/ n+ w1 ?* {/ b
varsigma        ς        ni                 div        ÷& _: i  e' K4 R2 v3 `  J
tau        τ        cong        ≅        neq        ≠
1 E: p, u7 _- d8 ^3 e, w) Bequiv        ≡7 ?6 b/ C6 B5 G9 s8 K" l
        approx        ≈        aleph        ℵ
$ v7 I) T+ P& \. o& AIm                 Re                 wp         " C+ @6 J* T8 I$ J' U
otimes        ⊗        oplus        ⊕        oslash         + \1 \/ j! y! j: P/ n: A
cap        ∩        cup        ∪        supseteq        ⊇9 u9 F& ^/ {# s$ Q7 ~* V
supset        ⊂        subseteq        ⊆        subset        ⊃
3 _4 h2 I) u4 O$ w. Aint        ∫        in        ∈        o        ο9 _* U" q- l1 T* ~
RFloor                 lceil                 nabla         
* a) K7 j' ~: e+ o$ R3 G. Klfloor                 cdot                 ldots         + E4 {- J  Z5 J, p, b& A9 m5 P9 @) e
perp                 neg                 prime         
" z3 R3 j& F4 e# jwedge                 times                         ∅
- x2 ]+ X% \! b. K4 h$ g0 crceil                 surd                 mid        |
9 S$ i  a% o3 |- K6 t2 Rvee                 varpi                 copyright        ©
" P+ [4 B8 T, N: {' o* N- Olangle                 rangle                        % k; I8 [- \& J4 v, R, a1 F' e
具体的公式编辑命令:9 ~6 }4 f1 I$ f4 m& z
1.上标用^和下表用_,希腊字母与tex一样,即alpha表示α。1 R& Z" n6 ?4 S! y, h
2.求和: $$sum_{i=1}^{n} x_{i}$$8 u3 H. ~) Y" \5 u; P- t3 ?" Z! H+ k* @
3.积分: $$ int_{0}^{1}$$, B, [* ?/ |4 z$ d2 p
4.求极限: $$lim_{n rightarrow infty}$$  %n趋于无穷符号在lim正下方
* U4 o+ i" y0 L$lim_{n rightarrow infty} $ %趋于无穷符号在lim右下角
/ D% }3 l4 e' f! y* u8 t5. 分式: $$frac{1}x$$  %1/x
, B4 }  @8 t* s* B% L6. 根式: $$sqrt{x}$$
. X# w% j" ]% f& q3 w7. 上划线: $$overline{x}$$
/ o5 A- q7 K0 f2 Y4 H; T8. 下划线: $$underline{x}$$  %下划线在x的正下方* @+ r. f; ]3 Z) J# R
9.卧式花括号命令: $$overbrace{x+y+z+w}$$9 {2 q* O+ i8 k3 I7 a! L
10.仰式花括号命令: $$a+underbrace{b+c+d} $$; l' ?, B) c7 i2 B5 R: q2 [, _
11.戴帽命令: $$hat{o} check{o} breve{o}$$/ j. X( r8 {3 Y  ?
$$widehat{A+B} widetilde{a+b}$$
: y# a6 V  s6 E; v$$vec{imath}+vec{jmath}=vec{k}$$8 I; {2 W4 v( e: |# K
12.堆砌命令: $$ystackrel{rm def}{=} f(x) stackrel{xrightarrow 0}{rightarrow} A$$
/ s* \1 B2 k  S; m/ ^  _13.省略号: $cdots ldots vdots ddots $
; a! {0 c6 M" l4 h$ B; D6 P(1)Tex字符的字体设置有如下6种。
8 u3 U7 H5 i* ~$ e①bf:设置字体为粗体字。
8 G3 y8 m) }2 X1 a②it:设置字体为斜体字。; _9 i/ x- h/ ^8 c
③sl:设置字体为斜体字,很少使用。
% Q/ v1 M* O) {2 [" }; D④rm:设置字体为正常字体。
- f7 L. m7 ^( {- v/ {5 B⑤fontname{字体名}:设置字体名。例如:fontname{宋体}。6 T# z$ e7 j0 ~$ h
⑥fontsize{字体大小}:设置字体大小。例如:fontsize{16}。8 u: j* U. `0 ^1 L5 ~$ v! b1 \
(2)Tex字符的颜色设置有下面两种方法。) t$ R! ?6 i, q% w' |
①color{颜色名}颜色名:颜色名有12种,分别为red、green、yellow、magenta、blue、black、white、 cyan、gray、barkGreen、orange和lightBlue。例如:color{magenta}magenta。% C. j& V# d6 c2 y6 U* j4 Q
②color[rgb]{a b c}:设置字体颜色为RGB矩阵[a b c]所表示的颜色。 a、b和c都在[0 1] 范围内。例如:color[rgb]{0 .5 .5}。9 j/ y! J9 \$ P0 a) c! g# K. @
(3)Tex字符的位置有2种设置。2 L( M- J! i( v/ \( K
①_:表示下标。 ②^:表示上标。, T3 S4 j: `1 H* T6 H

该用户从未签到

2#
发表于 2020-4-14 18:31 | 只看该作者
Matlab中巧用LaTex
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 09:41 , Processed in 0.156250 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表