|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Matlab中巧用LaTex
/ e m" @2 c" {- u众所周知,大多数科研工作者(大Boss或者象我们一样的学术打工仔)都会用到Matlab生成图片,图片的title或者legend最好有相应的说明,经常用到公式,比方说α,β等。但大多数人往往是利用图像后处理软件如Photoshop或illustrator等对生成的图片进行加工。
# v- Y! ?* W5 V5 t0 r6 }Latex是被公认的生成公式最漂亮的排版语言(软件),成为事实上学术排版的标准。那么能否利用latex生成公式插入到Matlab生成的图片中呢?答案是肯定的。( r5 u2 j* y5 ^" B$ }* t* |- U
Matlab带有Latex解析器,能支持latex的各种符号,比如积分符号等等4 i4 b, q ], c8 ]
![]()
) b3 S- L2 l. a# P5 k: U7 U. |6 z$ T
Matlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性有三个属性:latex 、tex、none。默认为tex。& \$ f- B2 [" X9 v; c) A$ g
当键入:>> set(text,'Interpreter')
6 O( d W; A! C( Y+ bMatlab将返回'Interpreter'所包含的属性值:
3 s3 s! [, v5 P8 o S[ latex | {tex} | none ]。
# @) `, A7 c( `9 W9 t利用Matlab文本的Interpreter属性使我们能在图形中显示一个较为复杂的公式,例如在公式中除了有希腊字母外,还有分号、根号等数学符号。( B. _$ C- V6 D- X! V; d
Tex的用法在Matlab的帮助文档里有详细介绍,这里主要介绍一下如何采用latex编辑公式。
: T1 Y" o: w. R4 V3 o$ j在matlab中,Latex编辑公式的基本格式:
1 E: l+ }" o" j6 w, B1、( LaTeX命令 )
5 q9 G3 ^; M2 H2、$ LaTeX命令 $) K- }6 w9 }' `. B( B }# Y' Z
3、$$ LaTeX命令 $$
/ `& S- \9 p6 U' D* d$ C% v9 `8 R" [
1. 在图象中直接加字符,很简单。
. w9 |& b) o+ }7 R5 b( Atext('Interpreter','latex','String','$$sqrt{x^2+y^2}$$','Position',[.5.5],… 'FontSize',16);/ [1 v% f2 N# r% E- H! I7 M
2. 在legend里加数学字符
9 h6 U; @) d3 ?. x1 z* j8 O9 B) H9 Qh=legend('$$sqrt{x^2+y^2}$$');* T/ s3 \" e& _* t$ a3 `
set(h,'Interpreter','latex')
% w6 N( [& v0 p8 w以Matlab图形中的textbox属性为例,首先在图形中输入一个双重积分,然后输入一个Schrodinger方程。命令为:- C* p8 d. ^$ w. K1 Z- u* w
输出结果为
5 B2 c" r7 X: {& V- _+ n: O8 v![]()
- _2 I- _: n& j4 `' G当然也可以使用( )命令。以此类推也可以对title、xlabel、ylabel、zlabel和legend等使用LaTeX命令,如:8 o+ }' t$ f) X# J
xlabel({'$int_0^x!int_y dF(u,v)$'},'Interpreter','latex')6 K5 D5 G3 J% u! j
至于LaTeX命令使用方法可以参考LaTeX教程。
1 H$ B: n* n8 S9 M4 ?$ f5 r! g/ X" O5 z
![]()
7 h, L' T5 F& h3 m9 G另外,Matlab可以吧计算结果转化成Latex格式,对于Matlab计算出的符号运算结果,可以通过latex()函数转化成LeTeX命令格式。由于latex()函数只对符号表达式进行转换,对于数值结果一定要通过sym()函数转化成符号结果。所以,为防止对数值结果转化出错,可同时使用latex()和sym()函数:latex(sym(s)); 其中s代表符号表达式。
3 _! ?% w/ d" \2 s* x( h- B
* _" g: o8 T' A. b% L0 e$ o例如:>>syms a b c9 t4 t) t: ^- l y; d
s=a/b+c
/ {* U$ Z2 \) F& M5 t; i0 R使用latex(s)后转化为LeTeX命令:
7 K0 L8 [) s) J9 @; R{frac {a}{b}}+c. z# D6 W6 S8 D6 |# P9 F
Tex字符在输出一些数学公式时经常使用,它只能由类型为text的对象创建。函数title、xlabel、ylabel、zlabel或text都能 创建一个text对象,因此Tex字符转义符(带“”的字符串)经常作为这些函数的输入参数。如果要输出希腊字母,可以使用texlabel函数将希腊 字母的变量名转化为希腊字母的函数,供函数title、xlabel、ylabel、zlabel或text使用。texlabel转换MATLAB表达式为等价的Tex格式字符串。它处理希腊字母的变量名为实际显示的希腊字母字符串。希腊字母的变量名为“”后面的字符串。
- Y! t C' H6 O. ]: \& u. k# t0 |( }Tex字符及其函数表
- {0 J' u; {% E1 n8 @: L函数字符 代表符号 函数字符 代表符号 函数字符 代表符号
) u$ A2 d9 i, p6 ]% M& U: Kalpha α upsilon υ sim ~
9 V$ N, i/ O9 a3 pbeta β phi ϕ leq ≤0 K8 `# w4 ~6 c
gamma γ chi χ infty ∞0 \) Z0 V: |/ B- M, M9 D. W
delta δ psi ψ clubsuit
5 _$ {* d8 G4 [( e/ T/ k' Nepsilon ϵ omega ω diamondsuit + a; w) E3 l% W9 n, F& R' A- h
zeta ζ Gamma Γ heartsuit ) Y* a# H4 @: E
eta η Delta Δ spadesuit
3 N5 U: x9 Y3 s- T t6 ^8 Y3 stheta θ Theta Θ leftrightarrow ↔
7 i: W/ E& ^# l6 `6 @2 }9 Bvartheta ϑ Lambda Λ leftarrow ←
) S6 [9 x* j" j9 R7 @3 |IoTa ι Xi Ξ uparrow ↑# F! |2 D; ]6 N8 r$ j+ D
kappa κ Pi Π rightarrow →
, `! Q' [6 `, _' H& flambda λ Sigma Σ downarrow ↓3 b7 d8 |. }& |1 h- q& F4 d) T, r; q
mu μ Upsilon Υ circ °" B* f" u, I& d
nu ν Phi Φ pm ±) P2 |1 B. K. z( L& [" [8 H& A
xi ξ Psi Ψ geq ≥6 D# Q( p! h- Y. ^" ~
pi π Omega Ω propto ∝3 M4 p" t$ Q8 V) S* J
rho ρ forall ∀ partial ∂
( R6 T* p0 a2 L/ usigma σ exists ∃ bullet ∙
- |8 S7 B' \# { Y5 _0 Q6 p7 Bvarsigma ς ni div ÷- X d% l) P' b. M. r2 w
tau τ cong ≅ neq ≠/ r9 H& Z. U! I: s: h S+ U" S
equiv ≡# I. P# B4 F( B# O) j' b
approx ≈ aleph ℵ
) \; \! o8 ?: P0 w# y% J i5 ]1 kIm Re wp
1 K. e0 j" B% W% R1 I+ o, \otimes ⊗ oplus ⊕ oslash # n& z: w* ~" p! p2 }7 i& O
cap ∩ cup ∪ supseteq ⊇7 |2 ^) [1 V% P
supset ⊂ subseteq ⊆ subset ⊃+ i9 J; O, Z, O3 Q+ n. K4 b
int ∫ in ∈ o ο- Z- F# M$ d( y' I. [" V3 M: k
RFloor lceil nabla
' T$ z' ]7 o; }% K% J" Zlfloor cdot ldots
! P3 F1 x7 i, s- operp neg prime 3 `9 o# ~: u7 f* B
wedge times ∅# }8 ]6 a4 v: D" `! X4 i0 k
rceil surd mid |
6 O4 I# E0 L7 V8 {4 s1 v' mvee varpi copyright ©5 R0 H, _7 ?1 ^: r4 }8 `4 J4 I
langle rangle $ L; n8 s+ y+ E$ t
具体的公式编辑命令:
8 U! L0 ~2 A/ f, o G+ u1.上标用^和下表用_,希腊字母与tex一样,即alpha表示α。& J' B( g7 Z4 \6 e8 w6 K; l
2.求和: $$sum_{i=1}^{n} x_{i}$$
0 p6 E% V/ x2 I3.积分: $$ int_{0}^{1}$$
) ]8 ]$ c, K* b$ F2 M4.求极限: $$lim_{n rightarrow infty}$$ %n趋于无穷符号在lim正下方
) x3 P+ q1 e2 i, }$lim_{n rightarrow infty} $ %趋于无穷符号在lim右下角
* A6 k0 N- x5 G2 r' M5. 分式: $$frac{1}x$$ %1/x
7 j! E: H8 c9 e7 n, r( f6. 根式: $$sqrt{x}$$
9 K; O! c2 @% m; F9 N. Z, a7. 上划线: $$overline{x}$$
: S* q0 b/ b7 X$ O8. 下划线: $$underline{x}$$ %下划线在x的正下方5 p$ E1 U5 B. ] w5 [* L
9.卧式花括号命令: $$overbrace{x+y+z+w}$$
2 M e5 m4 ^, [10.仰式花括号命令: $$a+underbrace{b+c+d} $$# l* @2 T- ~5 k2 [
11.戴帽命令: $$hat{o} check{o} breve{o}$$
0 h0 ~6 o6 h$ D' g4 d$ Q7 e$ q) ^$$widehat{A+B} widetilde{a+b}$$' |# F1 w9 j& t, K+ |8 V- O
$$vec{imath}+vec{jmath}=vec{k}$$" m, H) B% G0 i% v; e3 d$ Y1 U8 m
12.堆砌命令: $$ystackrel{rm def}{=} f(x) stackrel{xrightarrow 0}{rightarrow} A$$
& `( d( B. ~+ P3 |6 k13.省略号: $cdots ldots vdots ddots $
! z! p4 M7 s! z(1)Tex字符的字体设置有如下6种。
1 ~* v4 a! S2 |) p3 j①bf:设置字体为粗体字。
2 g. }" F. v& v, N5 i- I7 e②it:设置字体为斜体字。
: a) h5 S% @6 D( _. e( h) {③sl:设置字体为斜体字,很少使用。
, r7 @+ c3 s2 ?. y1 q7 w- \& D2 V④rm:设置字体为正常字体。( n4 q/ M( P2 |: ~3 w
⑤fontname{字体名}:设置字体名。例如:fontname{宋体}。- d9 L6 Q+ B0 ~; Y2 I
⑥fontsize{字体大小}:设置字体大小。例如:fontsize{16}。' W$ P2 K' Y P# A. A6 E
(2)Tex字符的颜色设置有下面两种方法。5 w+ T0 [+ Y0 j( v- I" |# J
①color{颜色名}颜色名:颜色名有12种,分别为red、green、yellow、magenta、blue、black、white、 cyan、gray、barkGreen、orange和lightBlue。例如:color{magenta}magenta。" n+ Z& K% @ ^" p3 I7 H
②color[rgb]{a b c}:设置字体颜色为RGB矩阵[a b c]所表示的颜色。 a、b和c都在[0 1] 范围内。例如:color[rgb]{0 .5 .5}。; O+ p" I; m! b/ Q2 Q3 e
(3)Tex字符的位置有2种设置。9 h/ u) ^1 {9 Y8 T( }3 F: ~
①_:表示下标。 ②^:表示上标。
* X; J8 ~" B8 j: V6 f/ \7 D2 h+ W |
|