2个坐标的平均值

3

我正在制作一个由两个坐标列表的平均值构成的图表。

我已经找了很多地方,但似乎找不到如何找到这两个值列表的平均值的任何信息。当我尝试时,出现了“索引超出矩阵边界”的错误,并且当我让它工作时,生成的图表年份非常高,而且图表本身看起来非常混乱。我的做法是使用Json导入两部分(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();

4
嗨,马库斯,欢迎来到SO。关于你的问题,那似乎是很多与你遇到的问题没有直接关系的代码。如果你能只提供一个具体的代码片段并指出错误发生的确切位置将会很有帮助。 - Bhavin
1个回答

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?"最初的回答"。

没起作用,错误还在,但谢谢。 - Marcus Byllemos
你能发布一下你使用的数据集吗? - Alex Leo
发现了问题。我成功地解决了它。 - Marcus Byllemos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接