将刻度标签更改为“10^ - 样式”外观

Alter tick labels to a '10^ - style' appearance

虽然对这类问题有很多回答,但我无法找到适合我的确切问题的解决方案。不管怎样

我尝试格式化我的刻度标签,如下例所示:

我已经发现“sprintf”命令提供了改变刻度格式的可能性。我最接近我想要的是由以下命令触发的 'e-notation':

set(ax,'YTickLabel',sprintf('%2.0e|',yticks))

但是,我希望我的标签显示如示例图片所示。有简单的方法吗?

非常感谢您,

您可以使用 Latex 格式和 sprintfc 来生成您想要的内容。 (实际上您可能根本不需要 sprintfc,但这是创建单行包含数字的字符串元胞数组的好方法。):

set(ax,'YTickLabels',sprintfc('10^{%i}',yticks)

在一般示例中(此处为 x 轴格式):

clear
clc
close all

x = 0:100000;
y = log(x);

figure
semilogx(x,y)

xt = get(gca,'XTick');

set(gca,'XTickLabels',sprintfc('10^{%i}',0:numel(xt)-1))

输出如下:

我错过了什么吗?为什么不使用 semilogy

x = -3:0;
y = 10.^x;
semilogy(x, y);
set(gca, 'YMinorGrid', 'on')