【发布时间】:2016-09-08 18:53:38
【问题描述】:
我有一个包含三列的 CSV 文件。我基本上想阅读前两列,然后用这些值绘制一个semilogy 图。我有以下代码段:
filename = 'ber.csv';
M = csvread(filename, 1)
close all
figure
semilogy(M(:,1), M(:,2), 'sb-', 'LineWidth', 2);
grid on
axis([0 25 10^-3 10^0])
xlabel('traceback depth, TB')
ylabel('Bit Error Rate');
title('BER with Viterbi decoding')
toc
上面的代码段,为我画了这样的东西:
问题是它在 x 轴上的 24 左右停止,而我有 30 个值。最后 10 个值如下所示(为简洁起见,其余部分省略):
20.0000 0.0807
21.0000 0.0443
22.0000 0.0312
23.0000 0.0078
24.0000 0.0052
25.0000 0
26.0000 0
27.0000 0
28.0000 0
29.0000 0
30.0000 0
我希望绘图一直持续到 30,并使其到达 x 轴,而从 25 到 30 的其余值仅为 0。有什么想法可以实现吗?
【问题讨论】:
-
您需要更具体地了解它的外观。从技术上讲,0 在对数图中无限低。
-
@AnderBiguri 有什么办法可以让图表看起来像碰到 x 轴,我的意思是显示 y 值“达到”0?
-
您不想“击中”x 轴,好像数据的值为 10^-3。那将是对您的数据的虚假陈述。您可以将 0 替换为非常非常低的数字,例如 10^-50 并限制 y 轴不显示这些值。这将显示一条从第 24 点开始向下延伸的线,可以按照您正在寻找的方式进行解释。
-
顺便说一句,其实这个问题几乎不是关于编程的。
标签: matlab