在x轴上使用线性刻度的Loglog图

时间:2016-01-27 12:05:19

标签: matlab plot matlab-figure

所以我有这些数据我想在loglog刻度上绘制,y轴上的线性值和x轴上的dB值和

loglog(EbN0,BER)

输出一个漂亮的曲线,但问题是轴刻度。它在y轴上很好,但x轴只有一个刻度,10^0而没有其他刻度。此外,该刻度对应于绝对值,而不是dB​​值。有什么方便的方法来实现这个目标吗?

(注意,EbN0和BER都包含绝对值)

编辑:我将添加我的数据并解释我想要的更多内容。

EbN0 =

  Columns 1 through 14

0.5000    1.0000    1.5000    2.0000    2.5000    3.0000    3.5000    4.0000    4.5000    5.0000    5.5000    6.0000    6.5000    7.0000

  Columns 15 through 20

7.5000    8.0000    8.5000    9.0000    9.5000   10.0000

BER_TOT_ITER =

  Columns 1 through 14

    0.2928    0.2024    0.1183    0.0511    0.0164    0.0046    0.0010    0.0003    0.0001         0    0.0000    0.0000    0.0000         0

  Columns 15 through 20

         0         0         0         0         0         0

如果我plot(10*log10(EbN0),10*log10(BER_TOT_ITER)),我实际上得到了我想要的图形和x轴上的dB值,但是现在y刻度以dB为单位而不是绝对值......所以我只是想重新标记y刻度,而不是重新缩放数字。

1 个答案:

答案 0 :(得分:4)

在这里重新贴标签真的是错误的做法。您将用字符串替换数值,并且调整大小等将不再起作用。 您的数据也不适合您实际看到的内容。 您应该始终尝试先转换数据。

除了loglog之外,还要查看semilogxsemilogy,这样您就可以拥有一个对数轴。

总之,你要找的是:

semilogy(10*log10(EbN0), BER_TOT_ITER)