这个怎么样?
data1 = randn(1000,1);
data2 = randn(1000,1);
data2 = data2 - 1.5*ones(size(data2));
lowest_boundary = min(min(data1), min(data2));
highest_boundary = max(max(data1), max(data2));
nbins = 10;
boundaries = linspace(lowest_boundary, highest_boundary, nbins + 1);
bin_assighnments1 = discretize(data1, boundaries);
bin_assighnments2 = discretize(data2, boundaries);
bin_counts1 = zeros(numel(boundaries) - 1, 1);
bin_counts2 = zeros(numel(boundaries) - 1, 1);
for m = 1:numel(bin_assighnments1)
n = bin_assighnments1(m);
bin_counts1(n) = 1 + bin_counts1(n);
n = bin_assighnments2(m);
bin_counts2(n) = 1 + bin_counts2(n);
end
merged_bin_counts = cat(2, bin_counts1, bin_counts2);
x = zeros(1, nbins);
for m = 1:nbins
x(m) = (boundaries(m) + boundaries(m+1))/2;
end
bar(x, merged_bin_counts);