enbb 发表于 2009-3-8 01:37

问个Hist的问题

有两列数据,如:
x:  0.01, 0.02, 0.03, 0.04, 0.05 ......

y:   0, 5, 3, 6, 0......

用Matlab可以很容易画出图 (plot(x,y)).
现在, 我想改变x 的bin scale (比如增加10倍), 然后再画图,不知道如何用matlab 实现。

新的 X: 0.1, 0.2, 0.3,0.4, 0.5......

新的Y应是原来的y 在新的bin scale 下的,应该如何实现呢? 谢谢!!

sogooda 发表于 2009-3-8 08:45


plot(x,10*y)
是这个意思吗?

enbb 发表于 2009-3-8 11:05

Thanks!

不是这样的。 我的意思是: 如果x 的scale 增加10倍,新的X对应的y 值应该是新的bin (这个例子是0.1)之间所有旧的y 的加和。

ChaChing 发表于 2009-3-8 12:38

感觉x,y应该即是原始数据yy的hist分布, 即y=hist(yy,x)
所以为何不用原始数据yy重新分布即可!?

enbb 发表于 2009-3-8 12:48

谢谢Chaching! 是的。我目前在查看一组很老的数据,要是有最初的数据,我重新hist 就行了。但现在没有原始数据,我手头上有的是用较小的bin step hist 之后的数据,所以我必须在这个基础上加大bin step。望赐教!

ChaChing 发表于 2009-3-8 16:29

找了下相关函数, 尚未找到现成的函数! 硬干吧, 使用for循环试试看
x=0.01:0.01:1; y=1:100; xx=0.1:0.1:1; % depend on your data
bound=;
for ii=1:length(bound)-1
yy(ii)=sum( y( find(x>bound(ii) & x<=bound(ii+1)) ) );
end

enbb 发表于 2009-3-8 23:55

谢谢!!学习了!!
页: [1]
查看完整版本: 问个Hist的问题