查找两个直方图在路径上的交叉点-MATLAB

时间:2018-11-21 08:41:56

标签: matlab histogram

我正在使用Matlab的histogram函数生成两个直方图,两个直方图都使用probability参数进行了归一化。

但是,一旦我生成了两个如下所示的直方图,我希望能够找到直方图与路径交叉的确切点,假设直方图是使用线条而不是条形图绘制的。不幸的是,这种形式的直方图不允许有线条,只是有条形。有一个hist函数,可以在Matlab中进行操作,以线条而不是条形图来绘制直方图,但是,它不容易标准化。

因此,理想情况下,我想使用histogram()绘制2个直方图并找出它们的交叉点。参见下图:

enter image description here

下面是如何创建图形的示例:

x = randn(2000,1);
y = 1 + randn(5000,1);
h1 = histogram(x);
hold on
h2 = histogram(y);
h1.Normalization = 'probability';
h1.BinWidth = 0.25;
h2.Normalization = 'probability';
h2.BinWidth = 0.25;

现在,从这里开始,我想找到两个直方图交叉路径的点。注意,相交值是相交(在数学意义上)。这不是我想要的。我正在寻找两个直方图在其外部边界处相交的x坐标。例如,在所附的图像中,答案应该是〜2.5。

1 个答案:

答案 0 :(得分:1)

从您的示例数据中进行简单的修改:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1250">
  <defs>
    <style>
      .cls-1 {
        fill: #190eae;
      }
    </style>
  </defs>
  <path id="bali-beautiful-beauty-433539" class="cls-1" d="M0,0H1920V1080L0,1250Z"/>
</svg>

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 1080.021" id="sectiona">
  <defs>
    <style>
      .cls-1 {
        opacity: 0.7;
      }
    </style>
  </defs>
  <g id="Group_78" data-name="Group 78" transform="translate(-488 -3248.979)">
    <path id="Path_26" data-name="Path 26" class="cls-1" d="M-1-16.511l960-85.021V978.489l-960-85Z" transform="translate(489 3350.511)"/>
  </g>
</svg>