1


,我有一个 MATLAB 程序,我在其中绘制了几个直方图。每次重新缩放 hist (轴)。我希望所有的历史都以相同的比例显示。
这是程序:

clc  
close all  
PopSize=10^3;  
SampleSize=1:100:PopSize;  
NumberOfSamples=10^2;  
Pop=randn(PopSize);  
figure(NumberOfSamples+1);  
hist(Pop);  
sample=[];
for j=1:100:PopSize  
for i=1:1:NumberOfSamples  
    Pop=SHUFFLE(Pop);  
    sample(i)=mean(Pop(1:j));  
end  
figure(i+j);  
hist(sample);  
end
4

3 回答 3

1

如果您的意思是希望所有hist调用都使用相同的计数间隔(“bins”或“buckets”),请使用:

hist(Y,x)

哪里x是 bin 中心的向量。histc如果要指定 bin 边缘而不是中心,也可以使用。

于 2010-12-15T08:36:51.803 回答
1

考虑以下代码修改:

%# ...
h = [];
for j=1:100:PopSize
    %# ...
    h(end+1) = gca;                        %# get handle to histogram axis
end

mx = max( cellfun(@max,get(h,'YLim')) );   %# get the max count of all histograms
set(h, 'YLim',[0 mx])                      %# set the y-limit of all axes
于 2010-12-15T09:44:47.317 回答
0

您可以使用AXIS命令来获取和设置轴限制。例如,在你的第一个情节之后,你可以做axvals = axis();,并且在每个后续情节之后axis(axvals);,将所有情节设置为与第一个情节相同的限制。

于 2010-12-14T22:56:25.860 回答