我有一个向量,称之为 x,其中包含我根据平均值计算的非常小的数字。我想绘制 x 的对数变换,比如 y=10*log10(x),以及等于 +- 2 个标准差的误差线,计算出均值。
为此,我使用了以下代码:
figure
errorbar(lengths, 10*log10(x), ...
10*log10(x-2*std_x), 10*log10(x+2*std_x), 'o')
我的问题是,由于 x 包含如此小的值,x-2*std_x 通常是一个负数,您不能取负数的对数。
所以我想我的问题是,当减去线性域中的标准偏差得到负数时,如何在对数域中绘制误差线?我不能做 +-
最佳答案
实际上你错误地调用了errorbar
。你应该打电话
figure
errorbar(lengths, 10*log10(x),10*log10(2*std_x), 'o')
如果 std_x
太小而无法工作,您可以通过从 10*log10(x-2) 绘制垂直线来编写您自己的
到 errorbar
版本*std_x)10*log10(x+2*std_x)
关于matlab - 在具有负值的对数域中绘制误差线 (Matlab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4393868/