【问题标题】:Calculate Vector of Averages for Multi-dimensional Array计算多维数组的平均值向量
【发布时间】:2017-03-07 20:20:35
【问题描述】:

有没有一种方法可以找到多个数组中每个值的平均值? 我有

double[][] a = new double[numDas][];

我只需要返回一个一维数组,其中包含第二维的每个索引的平均值。所以基本上如果我有这个

t[0] = new double[] { 1, 2 };
t[1] = new double[] { 3, 5 };

那么输出将是 { 2, 3.5 }

谢谢!

【问题讨论】:

  • 这是一个 C# 问题吗?

标签: c# .net multidimensional-array average accord.net


【解决方案1】:

请注意,double[][]jagged array。您可能想使用multi-dimensional array double[,]。然后你可以使用Accord.NET如下:

class Program
{
    static void Main(string[] args)
    {
        double[,] A = {
            {1, 2},
            {3, 5}
        };

        double[] B = Vector.Ones(2);

        Console.WriteLine("A = \n{0}", Matrix.ToString(A));
        Console.WriteLine("\nB = \n{0}", Matrix.ToString(B));
        Console.WriteLine("\nAt*B/2 = \n{0}", Matrix.ToString(A.Transpose().Dot(B).Divide(2)));

        Console.ReadLine();
    }
}

这给出了:

A =
1 2
3 5

B =
1 1

At*B/2 =
2 3.5

【讨论】:

  • 谢谢。这看起来正是我所需要的!
  • 顺便问一下,有没有 Accord .NET 方法可以将锯齿状转换为多维?谢谢!如果没有,我将不得不重新编写一些代码。
  • 有一个可以从多维转换为锯齿状,ToJagged()。我认为从锯齿状转换为多维是没有意义的,因为多维对所有行都有相同的列数。锯齿状的,根据定义,不要。
  • 谢谢!我明白你在说什么,但就我而言,我有一堆我必须平均的一维数组(相同长度)。所以这就是为什么我想在一个循环中将它们全部转储到锯齿状数组中(只需执行 a[n] = b... 其中 a 是 [][],b 是 [])。然后使用 Accord .NET 对它们进行平均。也许您可以提出更好的建议?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
相关资源
最近更新 更多