需要解决的主要问题是:
我们说我有一个包含8个数字的数组,例如[2,4,8,3,5,4,9,2]并且我在坐标系中使用它们作为我的x轴的值来绘制线。但我只能显示其中的3个点。 我现在需要做的是将点数(8)减少到3,而不是过多地操纵线 - 所以使用平均值应该是一个选项。 我不是在寻找整体阵列的平均值 - 我仍然需要总共8点的3点。
对于像[2,4,2,4,2,4,2,4]这样的数组和该数组中的4个数字,我可以简单地使用平均值" 3"每一对 - 但如果数量不均匀则不可能。
但我该怎么做?你知道如何以数学方式调用这个过程吗?
为了给你一些关于这个问题的更实际的细节:我有一个x轴,长720px,让我说我得到1000分。现在我必须将这1000个点(2个数组,一个用于x,一个用于y值)减少到最多720个点。
考虑插值和类似的东西,但我仍然不太确定这是否是我正在寻找的东西。
答案 0 :(得分:2)
插值是个好主意。您输入您的点并获得多项式函数作为输出。然后你可以用它来画线。点击此处查看更多信息:Interpolation over an array (or two)
答案 1 :(得分:1)
听起来你正在寻找比简单平均值更高级的数学函数。
我建议尝试通过Mathematica Stack Exchange识别潜在的算法,然后尝试找到一个实现任何潜在选择的Java库(这里可能是一个新问题)。
答案 2 :(得分:1)
我建议您以某种方式调整所有要点,然后根据显示所需的特定点进行评估。
有许多适合的选择:
您应该查阅文本或找一个图书馆来帮助您 - 例如Apache Commons Math。
答案 3 :(得分:0)
因为它是X轴,为什么不使用
MIN, MAX and (MIN+MAX)/2
你的三分?