如何在 Matlab 中每十年以对数图形式写入文本

How to write in a logarithmic plot a text in each decade in Matlab

我需要在对数图的底部或顶部每个十年写一个不同的数字。

我将这些数字放在一个数组中 N。有没有一种方法可以在不为每个十年编写 for 循环的情况下自动执行该过程?

每个十进制有9个数,如果我有两三个十进制,怎么写:

for i = 1:18
   text(x(i), y, num2str(N(i)));
end

其中,y 永远不会改变,N(i) 是我的号码,x(i) 他们的位置 我正在寻找

我想在橙色框(或顶部)中放入黑点的数量。

编辑:我可能误解了你的问题。一种解释是使用 xticks(解释如下)。另一个是放置文字。

如果您想做的只是将文本放在不同的位置,这很简单,因为 text 也接受矢量。

x = 0:1:5;
y = x;
plot(x,y);
text(x+0.25,0.5*ones(6,1),{'One','Two','Three','Four','Five','Six'})

产量:


除非您特别想放置标签,否则我建议您使用 xticks

例如:

y = 0:1:5;
x = exp(-y.^2);
semilogx(x,y);
set(gca,'XTickLabel',{'One','Two','Three','Four','Five','Six'})

给出: