matlab使用histogram画直方图划分柱宽度不一致问题

最近在研究一个迭代优化算法,理论和仿真都证明,该算法每次都会衰减x中的所有元素。
于是想画个直方图来表示每次迭代的时候x元素的变化情况

histogram(log10(abs(x).^2))

结果成这个样子:
在这里插入图片描述
每次迭代x都在减小,但似乎有哪里不对!
按理说,每次迭代后的形状应该更扁平才对,而不是这样忽大忽小!
再仔细观察下,每次画柱状图的宽度还不一致,划分的细的话,当然每个格中的数量就少,整体就看着扁;划分的宽的话,每个格中数量多,看着就高。

后来查了一下mathworks官网函数说明https://ww2.mathworks.cn/help/matlab/ref/matlab.graphics.chart.primitive.histogram.html点这里
里面的histogram函数有这样一个参数:
在这里插入图片描述
这个BinWidth参数可以控制每一个bin的宽度,也就是对x中元素划分时的每一格的宽度。
将代码改为:

histogram(log10(abs(x).^2),'BinWidth',0.1)

效果如下图:
在这里插入图片描述
这样每个柱的宽度就是0.1了,柱的数量由系统自动计算。可以明显看到随着迭代的进行,x中的元素越来越小了。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值