исправить масштаб множественной истории в MATLAB - PullRequest
1 голос
/ 15 декабря 2010

привет
У меня есть программа MATLAB, в которой я рисую несколько гистограмм. каждый раз, когда история пересчитывается (оси). Я хочу, чтобы все шипы отображались в одном и том же масштабе.
это программа:

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

Ответы [ 3 ]

1 голос
/ 15 декабря 2010

Если вы хотите, чтобы все hist звонки использовали одинаковые интервалы подсчета («корзины» или «корзины»), используйте:

hist(Y,x)

Где x - вектор бин-центров. Вы также можете использовать histc, если хотите указать ребра корзины вместо центров.

1 голос
/ 15 декабря 2010

Рассмотрим эту модификацию кода:

%# ...
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
0 голосов
/ 15 декабря 2010

Вы можете использовать команду AXIS , чтобы получить и установить пределы оси.Например, после первого графика вы можете выполнить axvals = axis();, а после каждого последующего графика - axis(axvals);, чтобы установить для всех графиков те же ограничения, что и для первого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...