【问题标题】:Finding the mean value of a dense matrix求密集矩阵的均值
【发布时间】:2012-06-22 22:16:17
【问题描述】:

我正在尝试在 C# 中计算密集矩阵中每一列的算术平均值,但我想知道是否可以做到?

【问题讨论】:

    标签: c# visual-studio matrix mean


    【解决方案1】:

    元代码

    mean(int[,] data, int j)    
       int sum = 0;    
       for i=0 to data.Length - 1
          sum += data [i, j]
       end     
       return sum / data.Length;
    

    C#代码

    class Program
    {
        static void Main(string[] args)
        {
            var data = new[,]
            {
                { 1.1, 2.2 }, 
                { 3.3, 4.4 }, 
                { 5.5, 6.6 }, 
                { 7.7, 8.8 }
            };
    
            double meanValue = Mean(data, 0);
        }
    
        public static double Mean(double[,] data, int columnIndex)
        {
            double sum = 0.0;
            int rowsCount = data.GetLength(0);
    
            for (int i = 0; i < rowsCount - 1; i++)
            {
                sum += data[i, columnIndex];
            }
    
            return sum / rowsCount;
        }
    }
    

    【讨论】:

    • 注意,您可能希望将sum 设为双精度/十进制,具体取决于所需的结果。
    • 很好,但我想这样开始方法: public static double[] CalculateArithmeticMean(DenseMatrix matrix) {}
    • @MichaelLoftus 然后创建该方法,有一个for 循环,您可以在其中遍历每一列并调用此处定义的方法。将所有结果添加到数组中并返回。
    • 我不确定我明白你的意思吗?我是否应该创建一个 for 循环,用类似 for (int a = 0; matrix.ColumnCount; i++) 的方式环绕另一个 for 循环
    • @MichaelLoftus 我添加了 C# 代码。您可能需要根据您的数据类型对其进行调整,但算法保持不变。
    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 2016-06-25
    • 2018-12-02
    • 2014-06-23
    • 2013-09-29
    • 2014-03-06
    • 2021-02-23
    • 2013-05-06
    相关资源
    最近更新 更多