Matlab中有两个绘制直方图的函数:hist和bar,下面具体介绍:
hist:
一:
hist(x):如果x是一维行向量或一维列向量,则将x中的最小和最大值之间的区间等分10份,横坐标是x值,纵坐标是该值的个数(即hist(x,10))。
二:
[a,b]=hist(x,y):如果x是一维行向量或一维列向量,则将x中的最小和最大值之间的区间等分y份,横坐标是x值,纵坐标是该值的个数。返回的a是落在该区间内的个数,b是该区间的中心线位置坐标。
例:
b=10000;
c=randn(1,b); %产生10000个正态分布的随机数
d=100;
[a,b]=hist(c,d); %平均分成100份
a=a/length(c); %把个数转换成频度
bar(a); %转换成条形图
可以看到,绘出的条形图基本符合正太分布曲线。
bar:
一:
bar(x):以一维向量x的下标为x轴,值为y值画直方图。
二:
bar(x,y):x必须是严格递增的且一维向量x和一维向量y长度相同。以一维向量x的值为x坐标,对应的y为y坐标画直方图。
类似bar的还有bar3:三维直方图;barh:水平直方图;bar3h:三维水平直方图