matlab中hist函数的用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中hist函数的用法相关的知识,希望对你有一定的参考价值。
data=[4 1 2 3 1 3 1 3 2 4];
z=hist(data,4)
解释一下问什么输出是3 2 3 2;
x轴是范围(bin),y轴是频率(个数),它的bin是1-1.75, 1.75-2.5, 2.5-3.25, 3.25-4 四个范围,3,2,3,2是这些data有多少个属于bin对应的范围,即 3个数据在1-1.75这个范围,2个数据在1.75-2.5的范围,...
[n,bins]=hist(data,4),可以输出对应的bin(这里输出的bin是范围中心的位置,可以换算成以上提到的范围)
调用语法:
n = hist(Y)
n = hist(Y,x)
n = hist(Y,nbins)
[n,xout] = hist(...)
hist(...)
hist(axes_handle,...)
描述:
直方图显示了数据值的分布情况。
n = list(Y)
将向量Y中的元素分到10个等间隔的范围内,并返回每个范围内元素的个数作为一行向量。
如果Y是一个m x p的矩阵,hist将Y的每一列作为一个向量,并返回一个10 x p的矩阵n。n的每一列的值对应Y的该列。
n = hist(Y, x)
x是一个向量,返回x的长度个以x为中心的,Y的分布情况。
例如:如果x是一个5元素的向量,返回Y在以x为中心的,x长度个范围内数据直方分布。
注:如果更需要制定数值边界而不是中心,可以使用histc。
n = hist(Y, nbins)
nbins是一个范围,使用nbins间隔数。
[n,xout] = hist(...)
返回n和xout,包含有数目频率和间隔位置。可以使用bar(xout, n)来绘制直方图。
hist(...)
使用上述方法绘制没有输出的直方图。
hist(axes_handle)
使用exes_handle轴绘制,代替目前的轴(gca)。
在你给的样例当中,hist是用来计算data数组的分布情况,也就是分别统计1,2,3,4每个数出现的次数。
其中,data中有3个1,2个2, 3个3, 2个4.
所以输出是3 2 3 2. 参考技术B
histogram是一个在图像上应用广泛的一个统计工具,bag-of-word,spatial pymarid matching等等都是基于histogram的。那么如何去做到有效的统计,而不去自己写很长很慢的循环完成这项工作呢?matlab提供了一个非常便利的函数:hist
下面将得到hist的一些函数用法:
设数据为10000个正态分布:y = randn(10000,1);区间从-4到4:x = -4:0.1:4;
1.n=hist(Y);
默认十个等间隔区间,并返回每个范围内的Y的元素个数作为一行向量,
2.n=hist(Y,X);
X是一个事先给定的区间划分,统计Y在X这个区间划分下的个数,
3.n=hist(Y,nbins);
nbins是间隔数,也就是说我们应该统计多少个间隔,这里设nbins=20,
4.[n,xout]=hist(...);
返回的参数多了很多,n是每一个区间的个数,xout是区间的中心位置
参考技术C直方图也被称为频数直方图,它用来显示数据集的分布情况。
在MATLAB中绘制直方图的函数是hist,用法是hist(y,x),表示以向量x的各个元素为统计范围,绘制y的分布情况。
以上是关于matlab中hist函数的用法的主要内容,如果未能解决你的问题,请参考以下文章