matlabhistc的⽤法,matlab的hist函数应⽤技巧及使⽤⽅法如果在⼀个矩阵中杂乱的分布这⼀组数据,且数据中有重复,想统计出相同数据出现的次数,可使⽤以下⽅法:
设该矩阵为a(1,20),则可以
a=[2.57,2.9,2.87,2.82,2.49,2.69,3.09,2.91,3.0,3.058,2.92,2.84,3.23,3.1,3.02,3.11,2.87,2.95,2.92,2.73];
x=unique(a);
y=a;
[m n]=hist(y,x);
得到的结果n为相应的量,对应的m为n在a中出现的次数。
x=unique(a);
m =[ 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1]
n =[ 2.4900 2.5700 2.6900 2.7300 2.8200 2.8400 2.8700 2.9000 2.9100 2.9200 2.9500 3.0000 3.0200 3.0580
3.0900 3.1000 3.1100 3.2300]
该⽅法不必对a排序后再统计,较为⽅便。 n(1)=2.4900 n(2)=2.5700, 2.histc函数⾸先说⼀下hist函数的作⽤:
hist 绘制直⽅图函数
matlab直方图n = hist(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。
例如: 得到数组Y的分布情况,缺省为将数组元素分为10个区间,来统计在该区间的分布
y=[2.57,2.9,2.87,2.82,2.49,2.69,3.09,2.91,3.0,3.058,2.92,2.84,3.23,3.1,3.02,3.11,2.87,2.95,2.92,2.73]; M=hist(y) y进⾏个数统计(10个区间) 结果: M = 1 1 1 1 2 6 2 2 3 1 M=hist(y,5) y进⾏个数统计(5个区间)结果: M = 2
2 8 4 4 n = hist(Y, nbins)
nbins是⼀个范围,使⽤nbins间隔数。
[n,xout] = hist(...)
返回n和xout,包含有数⽬频率和间隔位置。可以使⽤bar(xout, n)来绘制直⽅图。
y=[2.57,2.9,2.87,2.82,2.49,2.69,3.09,2.91,3.0,3.058,2.92,2.84,3.23,3.1,3.02,3.11,2.87,2.95,2.92,2.73]; M=hist(y,5)
[n,xout] = hist(y,5) bar(xout, n) hist(axes_handle)
使⽤exes_handle轴绘制,代替⽬前的轴(gca)。以x=[1 2 3 4 5 6],edges=[0 3 5]为例。 [n,bin]=histc(x,edges); 返回n=[2 2 1],bin= [1 1 2 2 3]。即:以edges为基准,向量n的值为:edges_k<=number(x_k)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论