c# - 如何对每个内部条目平均 List<List<double>> ?

标签 c# linq list average montecarlo

我正在进行蒙特卡洛模拟,并且即将完成应用程序该部分的代码编写。我有以下列表:

List<List<double>> myFullList = new List<List<double>>();
List<double> myInnerList = new List<double>();

for(int i = 1; i <= numberOfLoops; i++)
{ 
    for(int i = 1; i <= 10; i++)
    {
        // Populate inner list with random numbers
        myInnerList.Add(double myRandomNumber);
    }

    // Add the inner list to the full list
    myFullList.Add(myInnerList);
}

该列表应如下所示:

myFullList[0] = {rand#1,rand#2,rand#3,...,rand#10}
myFulllist[1] = {rand#1,rand#2,rand#3,...,rand#10}
.
.
.
.
myFulllist[1] = {rand#1,rand#2,rand#3,...,rand#10}

我需要对这些数据进行平均以形成一个如下所示的单个列表:

List<double> averagedData = new List<double>();
averagedData = {avg#1, avg#2........avg#10}

此输出变量将对内部列表中同一“行”数据的数据进行平均。

简单的例子:

innerList[0] = {1,2,3};
innerList[1] = {3,2,1};

fullList = {innerList[0], innerList[1]};

averageList = {2,2,2};

最佳答案

如果您只是想平均每个内部列表,您可以使用:

List<double> averagedData = myFullList.Select(l => l.Average()).ToList();

如果您尝试对数据“列”进行平均(您的示例似乎就是这种情况),您可以执行以下操作:

var averagedData = myFullList[0].Select((v,c) =>
                       myFullList.Average(r => r[c])
                  ).ToList();

关于c# - 如何对每个内部条目平均 List<List<double>> ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25087534/

相关文章:

python - 如何根据条件连接 pandas 列中的字符串

c# - 结合 OrderBy 表达式和 Where 表达式

c# - 在 C# 中拆分 URL?

c# - HttpClient.GetAsync(...) 在使用 await/async 时永远不会返回

c# - 使用 SMO 更改逻辑数据库名称

c# - 验证日期时间是按月顺序的

c# - 通用和非通用集合之间的 linq `from` 子句?

python - 将 2D 数组转换为 3D numpy 数组

c++ - 创建链接 vector 和列表

c# - WPF 如何从 ViewModel 访问控件