查看单个帖子
旧 2019-12-10, 20:48   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在对数域中用负值绘制误差线(Matlab)

我有一个向量,称为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通常为负数,并且您不能取负数的对数。

所以我想我的问题是,当减去线性域中的标准差得到负数时,如何在对数域中绘制误差线?我不能做+-



回答:

您可以将这些值替换为一个较小的值但可记录(例如降低40 dB):

minb = x-2*std_x; mask = (minb
poster 当前离线   回复时引用此帖