Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2018-10-20, 22:31   #2
好吗?好的
初级会员
 
注册日期: 2018-10-20
年龄: 27
帖子: 3
声望力: 0
好吗?好的 正向着好的方向发展
默认 回复: 二维直方图如何绘制

function sfpin(y) %创建函数M文件
y=y( : ) ;
N=length(y);
l=floor(1.87*(N-1)^0.4); %算组数
[Y,X]=hist(y,l); %直方图数据值
X=X( : )'; %每组中心位置值(行向量)
Y=Y(: )'; %每组数据个数(行向量)
ind=find(Y==0); %找出数据个数为0的位置
X(ind)=[];
Y(ind)=[];
xt1=1.5*X(1)-X(2)*0.5; %第一个横坐标值
xtt=X(1:end-1)*0.5+X(2:end)*0.5;
xt2=1.5*X(end)-X(end-1)*0.5; %最后一个横坐标值
X=[xt1,xtt,xt2]; %所有横坐标值
n=sum(Y);
Y=Y/n; %频率
xx=[X;X];yy=[Y;Y];
Xt=xx( : ) ;Yt=[0;yy( : ); 0] ;
fill(Xt,Yt,'c')
hold on
x1=(X(2:end)+X(1:end-1))/2; %每组数据中心横坐标值
XX=[Xt';Xt'];
YY=[Yt';zeros(1,length(Yt))];
plot(x1,Y,'-k',Xt,Yt,'-k',XX,YY,'-k')
hold off
title('频率直方图')
好吗?好的 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 18:19


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.