EDA365电子论坛网
标题:
Matlab中巧用LaTex
[打印本页]
作者:
pulbieup
时间:
2020-4-14 10:25
标题:
Matlab中巧用LaTex
Matlab中巧用LaTex
" `# w9 C2 C) |9 Q3 w+ s
众所周知,大多数科研工作者(大Boss或者象我们一样的学术打工仔)都会用到Matlab生成图片,图片的title或者legend最好有相应的说明,经常用到公式,比方说α,β等。但大多数人往往是利用图像后处理软件如Photoshop或illustrator等对生成的图片进行加工。
- y' y- P% v3 P) B9 M/ F
Latex是被公认的生成公式最漂亮的排版语言(软件),成为事实上学术排版的标准。那么能否利用latex生成公式插入到Matlab生成的图片中呢?答案是肯定的。
o9 C; q; D0 L. p+ F
Matlab带有Latex解析器,能支持latex的各种符号,比如积分符号等等
: z* F: L7 N" Q8 @5 P: y1 G, l
^* j( o5 l D' |8 i
% W# I7 i+ X# C$ j* |$ f7 F
Matlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性有三个属性:latex 、tex、none。默认为tex。
0 e' s8 l2 j$ w" g! Z: |. \: L+ r! \
当键入:>> set(text,'Interpreter')
; n! _6 }/ I0 _# ]
Matlab将返回'Interpreter'所包含的属性值:
' h5 W: G- O+ N. M4 M' A
[ latex | {tex} | none ]。
7 J8 T/ r3 f' b3 C+ t" P
利用Matlab文本的Interpreter属性使我们能在图形中显示一个较为复杂的公式,例如在公式中除了有希腊字母外,还有分号、根号等数学符号。
$ V- v; V% M8 |/ [6 c s, U
Tex的用法在Matlab的帮助文档里有详细介绍,这里主要介绍一下如何采用latex编辑公式。
0 ^# M9 }1 H$ B
在matlab中,Latex编辑公式的基本格式:
( Z# e* O8 g# Q, N/ Y( j
1、( LaTeX命令 )
7 r$ n: c) U4 ]: s7 P0 e8 s
2、$ LaTeX命令 $
& F( K+ o" R: p7 ~' m) ~
3、$$ LaTeX命令 $$
: U( {, \' ]" t9 Z( d; O9 B/ A
$ U/ a/ ]- T2 B" A3 v1 w! z
1. 在图象中直接加字符,很简单。
! U7 s# B# f# ~) }! W3 [
text('Interpreter','latex','String','$$sqrt{x^2+y^2}$$','Position',[.5.5],… 'FontSize',16);
9 S) L5 @: e6 Z( `" L# E
2. 在legend里加数学字符
; t( k0 [; N& m4 d. j
h=legend('$$sqrt{x^2+y^2}$$');
5 y0 x; s4 R, X. ^' `
set(h,'Interpreter','latex')
|+ S% S( A' ~/ X- q" d( d% B `
以Matlab图形中的textbox属性为例,首先在图形中输入一个双重积分,然后输入一个Schrodinger方程。命令为:
4 f+ P& p ]8 n& x7 A- u- u) M
输出结果为
; a2 Q3 E+ g7 c/ Q7 ~. x
; D! e2 H/ k3 ?! R
当然也可以使用( )命令。以此类推也可以对title、xlabel、ylabel、zlabel和legend等使用LaTeX命令,如:
; b# O/ e$ K9 y! g0 m
xlabel({'$int_0^x!int_y dF(u,v)$'},'Interpreter','latex')
( G' q, X/ {: E- L0 d' d* @
至于LaTeX命令使用方法可以参考LaTeX教程。
4 A; {" y% R" s# e
& s/ ]) u6 J" R
( e# j; { `9 d' @# _' F
另外,Matlab可以吧计算结果转化成Latex格式,对于Matlab计算出的符号运算结果,可以通过latex()函数转化成LeTeX命令格式。由于latex()函数只对符号表达式进行转换,对于数值结果一定要通过sym()函数转化成符号结果。所以,为防止对数值结果转化出错,可同时使用latex()和sym()函数:latex(sym(s)); 其中s代表符号表达式。
( Z0 {- ~! a" Q
' p k8 ]- i% r0 j' d- _
例如:>>syms a b c
! h+ l( ^$ I3 s9 S- N$ e! D g% A q
s=a/b+c
. m d& K% z2 ]8 a" B9 r* Z, [5 j/ }
使用latex(s)后转化为LeTeX命令:
" u/ Q7 t5 l8 P# w
{frac {a}{b}}+c
7 K: }! n! {, }( o ]& X
Tex字符在输出一些数学公式时经常使用,它只能由类型为text的对象创建。函数title、xlabel、ylabel、zlabel或text都能 创建一个text对象,因此Tex字符转义符(带“”的字符串)经常作为这些函数的输入参数。如果要输出希腊字母,可以使用texlabel函数将希腊 字母的变量名转化为希腊字母的函数,供函数title、xlabel、ylabel、zlabel或text使用。texlabel转换MATLAB表达式为等价的Tex格式字符串。它处理希腊字母的变量名为实际显示的希腊字母字符串。希腊字母的变量名为“”后面的字符串。
4 V F O/ a, x/ B
Tex字符及其函数表
5 M1 C( f5 N- F, T3 \3 U: L
函数字符 代表符号 函数字符 代表符号 函数字符 代表符号
( @; G. I8 Q$ L6 c+ K& f6 n
alpha α upsilon υ sim ~
/ D/ l: {6 S$ X+ [' u! r! ?
beta β phi ϕ leq ≤
* @6 v$ N# P; X6 I) K
gamma γ chi χ infty ∞
2 w4 V! K* S* s7 a; j% R7 S, y' f; T
delta δ psi ψ clubsuit
5 Y7 s1 z% r, r8 M, e5 p
epsilon ϵ omega ω diamondsuit
2 G3 h6 J, U. ?" A8 t; p+ ]
zeta ζ Gamma Γ heartsuit
& O' A' F/ X% z4 X& r4 q1 Z
eta η Delta Δ spadesuit
- M5 A, i* n+ U; g1 _# Y
theta θ Theta Θ leftrightarrow ↔
- z( K3 m5 }. S7 w& @
vartheta ϑ Lambda Λ leftarrow ←
% ?, |' @9 p/ S1 m6 L% u' u
iota ι Xi Ξ uparrow ↑
6 |9 L! {* E! f ?: r# @
kappa κ Pi Π rightarrow →
$ t, V# |+ z5 F6 C' S
lambda λ Sigma Σ downarrow ↓
! O: ?, o% {4 g' l& l
mu μ Upsilon Υ circ °
6 h3 w5 e: s& S/ Q. a
nu ν Phi Φ pm ±
5 j$ s+ V) c2 k/ h: _# Z( r$ x
xi ξ Psi Ψ geq ≥
5 [2 k! d7 h( J: Y1 l$ A. m; k0 R
pi π Omega Ω propto ∝
7 M2 g3 x5 I6 E4 {/ f& U9 v
rho ρ forall ∀ partial ∂
8 C3 C7 c1 Q! E* O. v: t$ d
sigma σ exists ∃ bullet ∙
4 N7 P* G& E. X3 t: q
varsigma ς ni div ÷
& `, J4 J0 I9 \$ y. y& O2 y f
tau τ cong ≅ neq ≠
8 L- \- k2 ?0 b2 g
equiv ≡
# S( _ W1 d8 {6 o+ [% P
approx ≈ aleph ℵ
3 _# {+ u) y7 M" y
Im Re wp
( F# n: k' o8 ?/ Q
otimes ⊗ oplus ⊕ oslash
2 P# v6 A8 `' ]+ e' G6 h$ X# |
cap ∩ cup ∪ supseteq ⊇
2 t$ W! H, H# J! ~. v
supset ⊂ subseteq ⊆ subset ⊃
% V2 z$ r6 D, h- `0 @# H
int ∫ in ∈ o ο
: D% [/ {& o m) `
rfloor lceil nabla
! A- H( L) [2 Y+ F! ^4 j/ T
lfloor cdot ldots
5 M6 b5 z% T# |% G. X. h) s
perp neg prime
# i* u( S. U+ P4 p8 K" o7 U7 r
wedge times ∅
- ]+ c# O. u8 e" c8 V1 u
rceil surd mid |
8 S/ }, m% R0 o- z3 _2 l# W
vee varpi copyright ©
: W1 P+ A5 F' g# H! Z; X% ?. A
langle rangle
) x1 I6 Z" y1 f. E$ P$ ?
具体的公式编辑命令:
; ^" p6 N5 X8 Q4 [1 s+ |- E8 r
1.上标用^和下表用_,希腊字母与tex一样,即alpha表示α。
1 _; X% h2 V, i9 n5 t/ E$ l
2.求和: $$sum_{i=1}^{n} x_{i}$$
2 u, m4 s" t! H9 e! f. |" H
3.积分: $$ int_{0}^{1}$$
9 ?# A& G e5 z" |# H* a
4.求极限: $$lim_{n rightarrow infty}$$ %n趋于无穷符号在lim正下方
/ H( q4 n% T4 T) v
$lim_{n rightarrow infty} $ %趋于无穷符号在lim右下角
g: C! F$ [6 E/ T
5. 分式: $$frac{1}x$$ %1/x
7 a/ a& J6 S4 S
6. 根式: $$sqrt{x}$$
7 c( _& z7 ^3 I6 a; j
7. 上划线: $$overline{x}$$
+ W. J1 g: E* n; \9 G" L% f
8. 下划线: $$underline{x}$$ %下划线在x的正下方
& ` p) x% a) t; H) N
9.卧式花括号命令: $$overbrace{x+y+z+w}$$
4 B+ q8 P+ P& K8 Q7 G% n
10.仰式花括号命令: $$a+underbrace{b+c+d} $$
6 e" q3 k/ P! A( u1 K! `$ I3 a
11.戴帽命令: $$hat{o} check{o} breve{o}$$
" ~' @" ^: U7 g: S6 {9 h
$$widehat{A+B} widetilde{a+b}$$
+ [3 \% x% J0 O, f" G$ K( V! h) `
$$vec{imath}+vec{jmath}=vec{k}$$
# k, O" V, @1 n2 j
12.堆砌命令: $$ystackrel{rm def}{=} f(x) stackrel{xrightarrow 0}{rightarrow} A$$
' M: M! f4 ^: E b7 q* J
13.省略号: $cdots ldots vdots ddots $
/ M0 t* k( y0 Z% A( g. V4 |* ^
(1)Tex字符的字体设置有如下6种。
( C0 O* Q [4 Z7 p- B8 L1 N0 x7 m
①bf:设置字体为粗体字。
1 a" e, N z1 a% E* v
②it:设置字体为斜体字。
+ n0 k) O+ g$ V: l2 u5 y% c
③sl:设置字体为斜体字,很少使用。
/ [ Y( v( o3 e) _# C) A+ Q8 r
④rm:设置字体为正常字体。
/ Z0 o4 z& L7 w$ W$ c
⑤fontname{字体名}:设置字体名。例如:fontname{宋体}。
9 d3 Q0 o+ K3 |2 H/ K" f) K
⑥fontsize{字体大小}:设置字体大小。例如:fontsize{16}。
, D, Y6 k$ [# ?# Z
(2)Tex字符的颜色设置有下面两种方法。
$ i# Z3 j$ R0 e- L: e( O
①color{颜色名}颜色名:颜色名有12种,分别为red、green、yellow、magenta、blue、black、white、 cyan、gray、barkGreen、orange和lightBlue。例如:color{magenta}magenta。
7 e& ]/ p7 A. y( o
②color[rgb]{a b c}:设置字体颜色为RGB矩阵[a b c]所表示的颜色。 a、b和c都在[0 1] 范围内。例如:color[rgb]{0 .5 .5}。
; G* b/ a* X. `2 j& t+ l4 @
(3)Tex字符的位置有2种设置。
7 j# \" N" C# i2 ~! ]
①_:表示下标。 ②^:表示上标。
9 R% Z7 u- K. U- b- O+ O# W# f
作者:
CCxiaom
时间:
2020-4-14 18:31
Matlab中巧用LaTex
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2