代码之家  ›  专栏  ›  技术社区  ›  vish1990

用Math.Net计算数组的平均偏差和标准偏差

  •  2
  • vish1990  · 技术社区  · 9 年前

    我使用的是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);
        }
    }
    
    1 回复  |  直到 9 年前
        1
  •  8
  •   kallitokaco Niyoko    8 年前

    您可以使用扩展方法。如果有十进制值,则必须先将其转换为双精度。别忘了添加 using System.Linq 和 using 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