matlab histc的用法,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 绘制直方图函数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)的值为x中的值分别在edges的哪个范围中(1就是在edges的第一个空中)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值