在matlab中,减号用短划线代替连字符

yx2lnoni  于 2023-02-13  发布在  Matlab
关注(0)|答案(3)|浏览(641)

下面是我的代码:

set(groot, 'defaultAxesTickLabelInterpreter', 'latex') %For axes; 
ax = gca;
yticklabels(ax, strrep(yticklabels(ax),'--','–'));
set(ax,'ticklabelinterpreter','tex')  %or 'tex' but not 'latex'
figure(1)
t= [0:0.01:2*pi];
x = sin(t);
y = cos(t)
plot(t, x, t, y)

输出:

我尝试了here的解决方案,但连字符仍然存在。我希望出现短破折号,因为它是负号的标准符号。让短破折号代替连字符出现的正确方法是什么?

x4shl7ld

x4shl7ld1#

MATLAB Answers中的This post解释了如何设置轴标签的(默认)解释器。

set(groot,'defaultAxesTickLabelInterpreter','latex');

打印前需要调用此函数。
有了这个设置,tick-labels将被解释为LaTeX代码。下面是一个比较。最后两个例子包括@XiangruiLi的答案(下一个代码片段必须在绘图创建后调用):

yticklabels(gca, strrep(yticklabels(gca),'-','--'));
yticklabels(gca, strrep(yticklabels(gca),'-','$-$'));
    • 无 *:x1c 0d1x
    • 乳胶 *:
    • 乳胶 * + strrep(...,'-','--'))
    • 乳胶 * + strrep(...,'-','$-$'))

虽然最后一个可能是你想要的,但请注意,这肯定不是MATLAB想要的表示。因此,问题是你是否真的需要/想要经历这个模糊。

t98cgbkg

t98cgbkg2#

在我看来,您误用了strrep。这对我很有效:

yticklabels(ax, strrep(yticklabels(ax),'-','--'));
vbopmzt1

vbopmzt13#

使用实际的Unicode减号字符也应该可以(也是Octave):

yticklabels(gca, strrep(yticklabels(gca),'-','−'));

在这种情况下,不需要将解释器设置为LaTeX。

相关问题