浙江师范大学论坛's Archiver

异度空间 发表于 2008-5-18 14:31

用matlab算各区间的频数

function [B]=pinshu(A)
%用于计算数据在各个区间的频数,其中数据以矩阵的格式输入
%A是要输入的矩阵
%用法:pinshu(A)---A是数据的矩阵
%输出结果分别是各个区间的频数和区间的范围
%Lzl778
%2006.7.18
Nu=numel(A);
if Nu<8
    error('数据个数太少,最小的数据个数必须>=8')
end
Min=min(min(A));
Max=max(max(A));
K=ceil(sqrt(Nu));%取K个区间
D1=floor(Min);
Dn=ceil(Max);
JJ=(Dn-D1)/K;%区间的间距
for i=1:K
    if i==1
        D(i)=D1;
        U(i)=D1;
    end
    if (U(i)<Max)
        U(i+1)=U(i)+JJ;
    end
    if i~=K
    Geshu(i)=numel(find(U(i)<=A&A<U(i+1)));
    else
    Geshu(i)=numel(find(U(i)<=A&A<=U(i+1)))  
    end
   Geshu;  
end
  K %区间的个数
  U  %各个区间的范围
hist(A,K);%画数据的直方图
hold on
axis on
axis tight;%把数据范围直接设为坐标范围
title('以区间个数为数据个数的平方根的直方图');
xlabel('采样距离');
ylabel('观测数据x的值');
hold off

页: [1]

网站web安全
检测认证
公共信息网络
安全备案
电子公告服务
备案网站
信息网络安全
报警服务
网络不良信息
举报中心

Powered by zjnubbs 6.1.0  © 2007-2009 蚂蚁策划