2个坐标的平均值

时间:2019-05-24 05:06:42

标签: c#

因此,我正在绘制坐标列表之间的平均值图。

所以我一直到处寻找,似乎找不到关于如何找到两个值列表的平均值的任何信息。当我尝试出现错误时,“索引在矩阵边界之外”,当我开始工作时,我只是制作了一个图表,其中极高的年份和图表本身看上去都很疯狂。我要做的是用Json导入2部分(data / data2)信息。

        //
        // Data
        //

        int tal = dataSet.dataset.value.Count;
        //Add items in the listview
        int[] yData = new int[tal];
        int[] xData = new int[tal];
        int k = 0;

        foreach (var item in dataSet.dataset.dimension.Tid.category.label)
        {
            xData[k++] = int.Parse(item.Value.ToString());
        }

        for (int i = 0; i < tal; i++)
        {
            yData[i] = dataSet.dataset.value[i];
        }

        //
        // Data2
        //

        int tal2 = dataSet2.dataset.value.Count;
        int[] y2Data = new int[tal2];
        int[] x2Data = new int[tal2];
        int j = 0;

        foreach (var item in 
        dataSet2.dataset.dimension.Tid.category.label)
        {
            x2Data[j++] = int.Parse(item.Value.ToString());
        }

        for (int p = 0; p < tal2; p++)
        {
            y2Data[p] = dataSet2.dataset.value[p];
        }


         This is the part
        /////////////////////////////////////////////////////////// 
        int[] ySum = new int[xData.Length];

        for (int i = 0; i < xData.Length; i++)
        {
            ySum[i] = (yData[i] + y2Data[i]) / 2;

        }
        /////////////////////////////////////////////////////////// 


        List<int> GenUd = new List<int>(yData.ToList());
        textBoxGenUd.Text = GenUd.Average().ToString();
        List<int> GenInd = new List<int>(y2Data.ToList());
        textBoxGenInd.Text = GenInd.Average().ToString();


        chartArea1.Name = "ChartArea1";
        chart2.ChartAreas.Add(chartArea1);
        chart2.Dock = DockStyle.Fill;



        for (int i = 0; i <xData.Count(); i++)
        {
            series1.Points.AddXY(ySum[i], x2Data[i]);
        }

        MySecChart2 mc3 = new MySecChart2(series1); 
        mc3.ShowDialog();

1 个答案:

答案 0 :(得分:2)

我的只是一个有根据的猜测-如果在以下情况下发生异常:

     This is the part
    /////////////////////////////////////////////////////////// 
    int[] ySum = new int[xData.Length];

    for (int i = 0; i < xData.Length; i++)
    {
        ySum[i] = (yData[i] + y2Data[i]) / 2;

    }
    /////////////////////////////////////////////////////////// 

我的诊断是yData[i]y2Data[i]的长度不相同,并且xData.Length的定义进入循环定义。

在循环定义中也许应该是yData.Length吗?