将可读性不强的MATLAB公式样式转为直观的LaTeX样式
Contens
- 问题来源
- 解决办法
- 代码
- 演示代码
- 源码编辑器
问题来源
B站有个大神“图某道”,他发了一期关于如何将可读性不强的MATLAB公式样式转为直观的LaTeX样式的视频,但是没有公开源码,我尝试一下。
解决办法
- 先用matlab内置的
latex
函数将待转化的公式转为LaTeX样式; - 再利用
figure
函数里面的text
函数将其表示在图里面。 - 注意:转的时候,解释器要用
latex
。
代码
function LaTeX = sym2latex(poly)
%SYM2LATEX 将多项式转化为LaTeX样式输出
LaTeX = latex(poly);
% 设置图幅并不显示所有无关的菜单栏等
fig = gcf;
fig.Name = '';
fig.NumberTitle= 'off';
fig.MenuBar = 'None';
fig.Position = [300, 300, 600, 300];
fig.Color = 'w';
% 不显示轴
ax = gca;
ax.XTick = [];
ax.YTick = [];
ax.XAxis.Visible = 'off';
ax.YAxis.Visible = 'off';
% 添加text函数
t1 = text(0, .6, ['$$', 'y =', LaTeX,'$$'], 'interpreter', 'latex'); % 注意此处的表达
t1.FontSize = 20;
t1.Color = 'k';
t1.FontWeight = 'Bold';
end
演示代码
在命令行输入:
>> syms x
>> y = 1 / (2 * x) + exp(-x + 1) + sin(tan(x)); % 可读性不强
>> LaTeX = sym2latex(y)
运行结果如下,
LaTeX =
'sinleft(mathrm{tan}left(xright)right)+{mathrm{e}}^{1-x}+frac{1}{2,x}'
且有如下图输出。
源码编辑器
MATLAB 2019b