Matlab之errorbar

在Matlab中有个画误差棒的函数errorbar,用在对数坐标下时,则会出现误差棒端点拉长的问题,严重影响画面(如下图左半轴所示)。这个问题开始是在Matlab6.5中发现的,2006b中虽对此函数有所更新但并未解决这个问题。
幸运的是,这个函数没有嵌入内核,可以在命令窗口键入type errorbar ,直接察看其源代码。找到定义误差棒端点长度的地方

tee = (max(x(:))-min(x(:)))/100;
% make tee .02 x-distance for error bars
取误差棒端点大小为误差棒长度的2%
xl = x – tee; 计算左端点
xr = x + tee; 右端点

找对地方,改起来就很简单了,在对数坐标中,点A变成了logA,要取到同一点,将A变成10^A即可,后两行改为

xl = x/10^tee;
xr = x*10^tee;

改名保存到工作目录,直接调用,效果如下图右半轴。
如果在这里加上个判断,就可以直接去目录MATLAB\R2006b\toolbox\matlab\specgraph下替换原始文件了:)

Update:
最新版可在下载页面获取

标签:.

条回应

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

porno film