我有7个向量,范围介于0和0.99之间。每个向量中的条目数是不同的,因此它将是“不公平的”#34;比较它们的直方图,因为假设变量是间隔的,在bin计数和条目数之间应该存在直接相关性。我对绘制值密度的平滑曲线感兴趣。因此,对于具有0和0.99的n值的向量a,我希望x轴为0到0.99,其中y轴是与这些值相关联的概率。
任何想法或见解?
答案 0 :(得分:0)
不确定你想要什么样的平滑,但有些想法如何开始:
%some example vectors of different length
p=[10,100,1000,10000];
D=arrayfun(@(x)(rand(x,1)),p,'uni',false);
%defining the range
support=[0:.1:1];
%make sure we don't miss a value
esupport=support;
esupport(end+1)=inf;
%define a function which uses histc to calculate the emperical probability for each bin
epdf_bin=@(x)histc(x,esupport)/numel(x);
%evaluate emperical probability
E=cellfun(epdf_bin,D,'uni',false);
M=cat(2,E{:});
%plot
bar(M);
%print legend
legend(arrayfun(@num2str,p,'uni',false));
%fix x axis labels
set(gca,'XTick',.5:numel(support))
set(gca,'XTickLabel',support)
答案 1 :(得分:0)
[h,b] = hist( my_data, Nbins );
plot( b, h / sum(h) );