虽然对于这类问题有很多已回答的问题,但我无法为我的确切问题找到合适的解决方案。反正。
我尝试格式化我的刻度标签,如下例所示:
我已经发现'sprintf'命令提供了改变刻度格式的可能性。我最接近我想要的是电子符号'由以下命令触发:
set(ax,'YTickLabel',sprintf('%2.0e|',yticks))
但是,我希望我的标签看起来就像示例图片中所示。有没有一种简单的方法可以做到这一点?
非常感谢您提前,
乔
答案 0 :(得分:3)
您可以使用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))
输出以下内容:
答案 1 :(得分:2)
我错过了什么吗?为什么不使用semilogy
?
x = -3:0;
y = 10.^x;
semilogy(x, y);
set(gca, 'YMinorGrid', 'on')