声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2083|回复: 0

[共享资源] 用于计算数据在各个区间的频数

[复制链接]
发表于 2006-8-21 00:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在处理数据的时候我们经常要算各个区间的频数,但是在matlab中没有这样的命令.当数据比较大的时候自己数就比较麻烦,这里编了个小程序,希望对大家有所帮助.(^_^)

代码如下:

  1. function [B]=pinshu(A)
  2. %用于计算数据在各个区间的频数,其中数据以矩阵的格式输入
  3. %A是要输入的矩阵
  4. %用法:pinshu(A)---A是数据的矩阵
  5. %输出结果分别是各个区间的频数和区间的范围
  6. %Lzl778
  7. %2006.7.18
  8. Nu=numel(A);
  9. if Nu<8
  10.     error('数据个数太少,最小的数据个数必须>=8')
  11. end
  12. Min=min(min(A));
  13. Max=max(max(A));
  14. K=ceil(sqrt(Nu));%取K个区间
  15. D1=floor(Min);
  16. Dn=ceil(Max);
  17. JJ=(Dn-D1)/K;%区间的间距
  18. for i=1:K
  19.     if i==1
  20.         D(i)=D1;
  21.         U(i)=D1;
  22.     end
  23.     if (U(i)<Max)
  24.         U(i+1)=U(i)+JJ;
  25.     end
  26.     if i~=K
  27.     Geshu(i)=numel(find(U(i)<=A&A<U(i+1)));
  28.     else
  29.     Geshu(i)=numel(find(U(i)<=A&A<=U(i+1)))  
  30.     end
  31.    Geshu;  
  32. end
  33.   K %区间的个数
  34.   U  %各个区间的范围
  35. hist(A,K);%画数据的直方图
  36. hold on
  37. axis on
  38. axis tight;%把数据范围直接设为坐标范围
  39. title('以区间个数为数据个数的平方根的直方图');
  40. xlabel('采样距离');
  41. ylabel('观测数据x的值');
  42. hold off
复制代码

[ 本帖最后由 suffer 于 2006-10-9 20:40 编辑 ]

评分

1

查看全部评分

回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-16 02:57 , Processed in 0.058157 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表