【问题标题】:Mean and standard Deviaton of array with Math.Net使用 Math.Net 计算数组的均值和标准差
【发布时间】:2016-11-11 17:13:51
【问题描述】:

我正在使用 MathNet .dll 并且必须从十进制值数组中计算平均值和标准差。

using MathNet.Numerics.Statistics;



static void Main(string[] args)
        {
            decimal[] values = { 39.99m, 29.99m, 19.99m, 49.99m };
            MathNet.Numerics.Statistics.
        }

但我没有计算平均值的方法。我必须执行许多数学运算但没有起点。如果有人能指出我正确的方向,我将不胜感激。我试过但找不到任何样本,所以我可以将该信息用于其余的数学运算。 我必须使用 MathNet 库。 谢谢

完整代码

using System;
using MathNet.Numerics.Statistics;
using System.Linq;

public class Program
{
    public static void Main()
    {
        decimal[] values = new[] { 39.99m, 29.99m, 19.99m, 49.99m };
        Tuple<double, double> meanStd = values
            .Select(x => (double)x)
            .MeanStandardDeviation();

        double mean = meanStd.Item1;
        double std = meanStd.Item2;

        Console.WriteLine("Mean = " + mean);
        Console.WriteLine("Std = " + std);
    }
}

【问题讨论】:

标签: c# mathnet-numerics


【解决方案1】:

您可以使用扩展方法。如果您有十进制值,则必须先将其转换为 double。不要忘记在顶部添加using System.Linqusing MathNet.Numerics.Statistics

您可以阅读MeanStandardDeviation 方法here 的文档。

decimal[] values = new []{ 39.99m, 29.99m, 19.99m, 49.99m };
Tuple<double, double> meanStd = values
    .Select(x=>(double)x)
    .MeanStandardDeviation();

double mean = meanStd.Item1;
double std = meanStd.Item2;

小提琴:https://dotnetfiddle.net/LubPTH

【讨论】:

  • 对不起,先生,但数组没有 MeanStandardDeviation 偏差。
  • @vish1990 这是一种扩展方法。见msdn.microsoft.com/en-us//library/bb383977.aspx
  • 谢谢先生,但我必须使用 mathNet .dll 。我有自己的方法来计算平均值,但我被要求使用外部 .dll (MathNet) 来更改所有内容
  • @vish1990 是 MathNet 先生。 MeanStandardDeviation Math.Net 方法。
  • 非常感谢先生,现在我希望我可以编写所有其他数学函数。你们有很大的帮助。