0001 function [h,x] = vb_merge_histgram_max(h1,x1,h2,x2)
0002
0003
0004
0005
0006
0007 N1 = length(x1);
0008 N2 = length(x2);
0009 d1 = x1(2) - x1(1);
0010 d2 = x2(2) - x2(1);
0011
0012 if max(x1)==max(x2) && N1==N2
0013 h = h1 + h2;
0014 x = x1;
0015 elseif max(x1) > max(x2)
0016 h = h1;
0017 x = x1;
0018 for n=1:N1
0019 xmax = (x1(n) + d1/2);
0020 xmin = (x1(n) - d1/2);
0021 ix = find( x2 >= xmin & x2 < xmax);
0022 if ~isempty(ix)
0023 for j=1:length(ix)
0024 m = ix(j);
0025 xx = x2(m);
0026
0027 xup = min(xx + d2/2 , xmax);
0028 xlow = max(xx - d2/2 , xmin);
0029
0030 h(n) = h(n) + h2(m) * (xup - xlow)/d2;
0031 end
0032 end
0033 end
0034 else
0035 h = h2;
0036 x = x2;
0037 for n=1:N2
0038 xmax = (x2(n) + d2/2);
0039 xmin = (x2(n) - d2/2);
0040 ix = find( x1 >= xmin & x1 < xmax);
0041 if ~isempty(ix)
0042 for j=1:length(ix)
0043 m = ix(j);
0044 xx = x1(m);
0045
0046 xup = min(xx + d1/2 , xmax);
0047 xlow = max(xx - d1/2 , xmin);
0048
0049 h(n) = h(n) + h1(m) * (xup - xlow)/d1;
0050 end
0051 end
0052 end
0053 end
0054