在 MATLAB 绘图标签中显示 Unicode 是否可行?

11

我想要调用类似以下的东西:

xlabel( 'Time (μs)' );  

但是这只会在图表上显示一个问号。有没有办法让Unicode显示出来?


2
对于 MATLAB 的有限 LaTeX 功能无法支持的 Unicode 通用情况,请参阅 https://dev59.com/FFrUa4cB1Zd3GeqPgyG_ 和 https://dev59.com/HWw15IYBdhLWcg3wCnYn。 - Jonas Heidelberg
3个回答

13

对于你的具体示例,你可以使用TeX\LaTeX格式来获得想要的显示效果:

xlabel('Time ({\mu}s)');

对于显示Unicode字符的更一般情况,如果您知道您的字符的代码, 您可以使用函数char将代码的十进制值转换为字符,并像这样构建一个字符串

xlabel(['Time (' char(181) 's)']);  % Same results as above

2
顺便提一下,你不需要在 \mu 周围加上花括号。\mus 就可以工作。 - Jonas
1
@Jonas:没错。不知怎么的,我有一段时间养成了使用花括号来分组TeX符号的习惯,但我真的不记得为什么了。也许只是为了将其与常规文本区分开来,使其更易于阅读,或者为了应对TeX符号和常规字符串组合可能给我带来不同TeX符号的偶然情况。老习惯... ;) - gnovice

3
尝试使用这个替代方案:
 xlabel( 'Time (\mu s)',  'interpreter','tex' );

或者简单地说
xlabel( 'Time (\mu s)');

谢谢,这对我想要的东西起作用了。我保持问题开放,因为似乎无法以这种方式显示任意Unicode(尽管我可能在这方面是错误的)。 - Shea Levy
快速提示:我实际上想要的是\mus而不是\mu s,我不希望在μ和s之间有空格。 - Shea Levy
2
空格只是为了让文本解释器识别符号,输出不应包含空格。 - Itamar Katz

3

我更喜欢使用TeX\LaTeX格式。

通常情况下,MATLAB没有一致的显示Unicode字符系统。在gnovice的回答中提到了使用char函数,但要注意,这实际上会在当前系统(根据您的Locale)上显示与该十进制值相对应的任何字符。

在Windows上,这意味着您可能实际上想引用Windows-1252代码页来选择您的十进制值。如果您决定使用LaTeX,则可以使用此资源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接