Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2018-10-13
帖子: 1
声望力: 0 ![]() |
![]()
请大神编写一个绘制二维直方图的程序。
|
![]() |
![]() |
![]() |
#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('频率直方图') |
![]() |
![]() |