【发布时间】:2011-11-07 23:37:58
【问题描述】:
我有一个日期/某种值数组。当我把它画成图表时,它看起来像这样:
我想找到它的本地最小和最大点。我在上面的图表上用蓝点签署了它们。
.net/linq/c#/f# 中是否有任何内置支持来获取数组/列表的本地最小最大值?我用谷歌搜索了这个主题。我只是想在自己编码之前和重新发明轮子之前仔细检查一下。
请。检查我的示例图表和上面的蓝点,这不仅仅是从数组中获取最小最大值!
【问题讨论】:
-
local min and max是什么意思? -
"local" 可以表示任意数量的东西。您必须定义您的标准,然后编写代码来识别这些点。 “检查我的蓝点”并没有告诉我们太多。您想要某个 X 值范围内的最小和最大 Y 值吗?或者您是否在寻找拐点之间的最小值和最大值?如果您的标准没有一个好的定义,我们就无法给出一个好的答案。
-
@Tom,我看到了蓝点,但仍然不明白你的意思。你能解释一下吗?
-
可能更清楚一点:这些数据来自机器并基于其操作,为了简单起见,可以将其称为“机器的燃料水平”,因此我的数据燃料水平与时间的关系。所以,数据频率取决于它的运行,如果它工作,我每 5 秒有一次数据,如果它不起作用,我每天有一次这个数据。我必须找到加油到机器的点,然后那里的燃料被偷了。
-
所以您真正要寻找的是拐点。在您的情况下,只要机器中的燃料量增加,您就可以肯定地说添加了燃料。如果燃料量在短时间内减少了超过某个定义值(即,这个东西每小时燃烧 5 加仑,但在一分钟内损失了一加仑),那么燃料很可能被盗了。您想要的是确定随时间变化超过预期值的点。