在一组数据中找到最平坦的区域

时间:2019-03-14 21:54:26

标签: algorithm matlab

我有一组数据,如下所示:

    a =
    8.6990   19.7143
    9.0000   23.5057
    9.1761   23.4864
    9.3010   23.9191
    9.3979   23.6779
    9.4771   24.3973
    9.5441   24.2236
    9.6021   24.0232
    9.6532   23.8172
    9.6990   24.0572
    9.7404   24.1207
    9.7782   24.0674
    9.8129   24.3270
    9.8451   24.4224
    9.8751   24.3044
    9.9031   24.5555
    9.9294   24.4349
    9.9542   24.5362
    9.9777   24.5995
   10.0000   24.7651
   10.0212   24.7552
   10.0414   24.9459
   10.0607   24.8709
   10.0792   24.9778
   10.0969   25.2394
   10.1139   25.2769
   10.1303   25.2918
   10.1461   25.6177
   10.1614   25.7244
   10.1761   25.8103
   10.1903   25.8171
   10.2041   25.8302
   10.2175   26.0061
   10.2304   26.1267
   10.2430   26.3699
   10.2553   26.6046
   10.2672   26.4685
   10.2788   26.8575
   10.2900   26.9997
   10.3010   27.1243
   10.3118   27.3388
   10.3222   27.3983
   10.3324   27.4009
   10.3424   27.7036
   10.3522   27.8784
   10.3617   28.1373
   10.3711   28.4575
   10.3802   28.3749
   10.3892   28.5800
   10.3979   28.5433
   10.4065   28.8831
   10.4150   29.5981
   10.4232   28.8865

当我绘制Y (a(:,2)) vs X (a(:,1))时,该图如下所示:

enter image description here

图中解释了我的问题。如何找到最平坦的区域(坡度= 0)和相应的Y值?目前,我有很多数据,其趋势与图中所示相同。

1 个答案:

答案 0 :(得分:0)

您无法直接使用此数据集找到“最平坦的区域” 。从视觉上看,很明显您想在 y 中找到一个小的增量,而在 x 中找到增量(假设对于减量也可能是正确的/有效的)。但是我在这里担心的是,该区域中(整体)曲线轨迹的波动更大。

选项是:

1)找到合适的曲线跟踪库,只需使用它即可获得平滑曲线。找到曲线的斜率,然后定义您的接受范围。在您的坡度达到可接受的水平时获取该坐标/ x坐标/值。

2)进行此操作时不要使其平滑。

这里确实没有太多信息可以使用。