我使用matlab处理数据以获得半径分布函数。现在我得到不同距离的其他原子到1个特定原子的数据(数组)。 我使用“hist”命令(hist(radius1,400))并获得直方图:
但我想要的是曲线,像这样: http://upload.wikimedia.org/wikipedia/commons/3/31/Lennard-Jones_Radial_Distribution_Function.svg
我尝试了一些拟合命令,但它会给我一个类似于正态分布的曲线,这不是我想要的。实际上不合适是好的,我只想要一条曲线来表明它的变化。
原始数据是一个4000 * 1的半径数组,有没有其他方法可以获得直方图每个条形顶部的曲线?
非常感谢。
答案 0 :(得分:0)
不是使用hist
自动绘制直方图,而是可以输出值:
[x, c] = hist(radius1,400);
x
是每个bin中的数据,c
每个bin的中心,所以这复制了一个直方图,然后在其上过度绘制一条线(这将只连接每个条的顶部,所以它可能看起来不像你希望的那样顺利):
bar(c,x);
hold on
plot(c,x,'r');
可以将fit
与匿名函数一起用作自定义模型,但在这种情况下可能会有点过分。