如何在matlab中的xlabel,ylabel,legend和text函数中使用latex

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在matlab中的xlabel,ylabel,legend和text函数中使用latex相关的知识,希望对你有一定的参考价值。

Latex编辑公式的基本格式:

一、\\( LaTeX命令 \\)

二、$ LaTeX命令 $3、$$ LaTeX命令 $$

1、在图像中直接加字符:text('Interpreter','latex','String','$$\\sqrtx^2+y^2$$','Position',[.5.5],… 'FontSize',16);

2、在legend里加

数学字符 h=legend('$$\\sqrtx^2+y^2$$');

set(h,'Interpreter','latex')

也可以使用\\( \\)命令,以此类推也可以对title、xlabel、ylabel、zlabel和legend等使用LaTeX命令,

如:xlabel('$\\int_0^x\\!\\int_y

扩展资料:

注意事项

Matlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性有三个属性:latex 、tex、none,默认为tex。

注:LaTeX是一套以TeX描述的宏软件。LaTeX有很多预设的模版、样式。它比TeX更为结构化,如包含了供建立索引、表格、列表等的宏和公用软件。利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,对于生成复杂表格和数学公式,这一点表现得尤为突出。

为方便利用LaTeX的命令,需要在把Matlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性设定为latex。

参考技术A

1、首先设定画图的参数。close all 语句清空之前的图,set 语句将背景设置为白色,定义一个fontsize变量方便以后使用。

2、画图之前先用figure语句产生一个空图,这样每次生成一幅图都会自动顺序编号。否则用figure(n)指定生成图的编号或名字也可以。

3、用plot函数在同一图中画两条曲线,两个plot语句中间需用 hold on 语句,否则会默认清除上次plot画的图。

4、显示多行label在大括号内使用分号分割:ylabel('真值与滤波值';'True value and estimation','FontSize',fontsize)。

5、第一句生成legend并获取其句柄('location','best' 让legend位置自动避开曲线);为了双语图注也是两行的,但分行方式与label不一样(使用sprintf('\\n')来换行)。第二句设置legend为没有框框的。第三句使用之前定义的fontsize变量设置legend字体大小。

6、legend的位置除'best'外还可以使用''North','East','NorthEast'等设定,下图是North设置的效果。

参考技术B Matlab中巧用LaTex
众所周知,大多数科研工作者(大Boss或者象我们一样的学术打工仔)都会用到Matlab生成图片,图片的title或者legend最好有相应的说明,经常用到公式,比方说α,β等。但大多数人往往是利用图像后处理软件如Photoshop或illustrator等对生成的图片进行加工。
Latex是被公认的生成公式最漂亮的排版语言(软件),成为事实上学术排版的标准。那么能否利用latex生成公式插入到Matlab生成的图片中呢?答案是肯定的。
Matlab带有Latex解析器,能支持latex的各种符号,比如积分符号等等。
Matlab图形中title、xlabel、ylabel、zlabel、textbox和legend等的Interpreter属性有三个属性:latex 、tex、none。默认为tex。
当键入:>> set(text,'Interpreter')
Matlab将返回'Interpreter'所包含的属性值:
[ latex | tex | none ]。
利用Matlab文本的Interpreter属性使我们能在图形中显示一个较为复杂的公式,例如在公式中除了有希腊字母外,还有分号、根号等数学符号。
Tex的用法在Matlab的帮助文档里有详细介绍,这里主要介绍一下如何采用latex编辑公式。
在matlab中,Latex编辑公式的基本格式:
1、\( LaTeX命令 \)
2、$ LaTeX命令 $
3、$$ LaTeX命令 $$

1. 在图象中直接加字符,很简单。
text('Interpreter','latex','String','$$\sqrtx^2+y^2$$','Position',[.5.5],… 'FontSize',16);
2. 在legend里加数学字符
h=legend('$$\sqrtx^2+y^2$$');
set(h,'Interpreter','latex')

当然也可以使用\( \)命令。以此类推也可以对title、xlabel、ylabel、zlabel和legend等使用LaTeX命令,如:
xlabel('$\int_0^x\!\int_y dF(u,v)$','Interpreter','latex')
至于LaTeX命令使用方法可以参考LaTeX教程。
另外,Matlab可以吧计算结果转化成Latex格式,对于Matlab计算出的符号运算结果,可以通过latex()函数转化成LeTeX命令格式。由于latex()函数只对符号表达式进行转换,对于数值结果一定要通过sym()函数转化成符号结果。所以,为防止对数值结果转化出错,可同时使用latex()和sym()函数:latex(sym(s)); 其中s代表符号表达式。
例如:>>syms a b c
s=a/b+c
使用latex(s)后转化为LeTeX命令:
\frac ab+c
Tex字符在输出一些数学公式时经常使用,它只能由类型为text的对象创建。函数title、xlabel、ylabel、zlabel或text都能 创建一个text对象,因此Tex字符转义符(带“\”的字符串)经常作为这些函数的输入参数。如果要输出希腊字母,可以使用texlabel函数将希腊 字母的变量名转化为希腊字母的函数,供函数title、xlabel、ylabel、zlabel或text使用。texlabel转换MATLAB表达式为等价的Tex格式字符串。它处理希腊字母的变量名为实际显示的希腊字母字符串。希腊字母的变量名为“\”后面的字符串。
Tex字符及其函数表
函数字符 代表符号 函数字符 代表符号 函数字符 代表符号
\alpha α \upsilon υ \sim ~
\beta β \phi ϕ \leq ≤
\gamma γ \chi χ \infty ∞
\delta δ \psi ψ \clubsuit
\epsilon ϵ \omega ω \diamondsuit
\zeta ζ \Gamma Γ \heartsuit
\eta η \Delta Δ \spadesuit
\theta θ \Theta Θ \leftrightarrow ↔
\vartheta ϑ \Lambda Λ \leftarrow ←
\iota ι \Xi Ξ \uparrow ↑
\kappa κ \Pi Π \rightarrow →
\lambda λ \Sigma Σ \downarrow ↓
\mu μ \Upsilon Υ \circ °
\nu ν \Phi Φ \pm ±
\xi ξ \Psi Ψ \geq ≥
\pi π \Omega Ω \propto ∝
\rho ρ \forall ∀ \partial ∂
\sigma σ \exists ∃ \bullet ∙
\varsigma ς \ni \div ÷
\tau τ \cong ≅ \neq ≠
\equiv ≡
\approx ≈ \aleph ℵ
\Im \Re \wp
\otimes ⊗ \oplus ⊕ \oslash
\cap ∩ \cup ∪ \supseteq ⊇
\supset ⊂ \subseteq ⊆ \subset ⊃
\int ∫ \in ∈ \o ο
\rfloor \lceil \nabla
\lfloor \cdot \ldots
\perp \neg \prime
\wedge \times \0 ∅
\rceil \surd \mid |
\vee \varpi \copyright ©
\langle \rangle
具体的公式编辑命令:
1.上标用^和下表用_,希腊字母与tex一样,即\alpha表示α。
2.求和: $$\sum_i=1^n x_i$$
3.积分: $$ \int_0^1$$
4.求极限: $$\lim_n \rightarrow \infty$$ %n趋于无穷符号在lim正下方
$\lim_n \rightarrow \infty $ %趋于无穷符号在lim右下角
5. 分式: $$\frac1x$$ %1/x
6. 根式: $$\sqrtx$$
7. 上划线: $$\overlinex$$
8. 下划线: $$\underlinex$$ %下划线在x的正下方
9.卧式花括号命令: $$\overbracex+y+z+w$$
10.仰式花括号命令: $$a+\underbraceb+c+d $$
11.戴帽命令: $$\hato\ \ \checko\ \ \breveo$$
$$\widehatA+B \ \ \widetildea+b$$
$$\vec\imath+\vec\jmath=\veck$$
12.堆砌命令: $$y\stackrel\rm def= f(x) \stackrelx\rightarrow 0\rightarrow A$$
13.省略号: $\cdots \ldots \vdots \ddots $
(1)Tex字符的字体设置有如下6种。
①\bf:设置字体为粗体字。
②\it:设置字体为斜体字。
③\sl:设置字体为斜体字,很少使用。
④\rm:设置字体为正常字体。
⑤\fontname字体名:设置字体名。例如:\fontname宋体。
⑥\fontsize字体大小:设置字体大小。例如:\fontsize16。
(2)Tex字符的颜色设置有下面两种方法。
①\color颜色名颜色名:颜色名有12种,分别为red、green、yellow、magenta、blue、black、white、 cyan、gray、barkGreen、orange和lightBlue。例如:\colormagentamagenta。
②\color[rgb]a b c:设置字体颜色为RGB矩阵[a b c]所表示的颜色。 a、b和c都在[0 1] 范围内。例如:color[rgb]0 .5 .5。
(3)Tex字符的位置有2种设置。
①_:表示下标。 ②^:表示上标。本回答被提问者和网友采纳

Error in xy.coords(x, y, xlabel, ylabel, log) : ‘x‘ and ‘y‘ lengths differ

Error in xy.coords(x, y, xlabel, ylabel, log) :  'x' and 'y' lengths differ

目录

Error in xy.coords(x, y, xlabel, ylabel, log) :  'x' and 'y' lengths differ

问题:

解决:

完整问题:


问题:

#两个向量长度不同

#define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#attempt to create scatterplot of x vs. y
plot(x, y)

解决:

#数据长度对等,以x为基础

#define x and y variables
x <- c(2, 5, 5, 8)
y <- c(22, 28, 32, 35, 40, 41)

#create scatterplot of first 4 pairwise values of x vs. y
plot(x, y[1:length(x)])

#把x序列补齐;

#define x and y variables to have same length
x <- c(2, 5, 5, 8, 9, 12)
y <- c(22, 28, 32, 35, 40, 41)

#confirm that x and y are the same length
length(x) == length(y)

[1] TRUE

create scatterplot of x vs. y
plot(x, y)

完整问题:

> #define x and y variables
> x <- c(2, 5, 5, 8)
> y <- c(22, 28, 32, 35, 40, 41)

> #attempt to create scatterplot of x vs. y
> plot(x, y)
Error in xy.coords(x, y, xlabel, ylabel, log) : 
  'x' and 'y' lengths differ

以上是关于如何在matlab中的xlabel,ylabel,legend和text函数中使用latex的主要内容,如果未能解决你的问题,请参考以下文章

子图和 xlabel 中的标题

为啥我要绘制的代码没有显示带有标题、xlabel 和 ylabel 的输出?

ggplot2 并用图例更改 xlabel 和 ylabel 名称

如何在matlab中输入希腊字母?

matplotlib 笔记:修改xlabel,ylabel 字体

Error in xy.coords(x, y, xlabel, ylabel, log) : ‘x‘ and ‘y‘ lengths differ