2013-02-14 34 views
2

我想使用并行处理为大数组的无符号短(16位)值进行数组统计。并行为了总结一个ushort数组(大数组18M)

ushort [] array = new ushort [2560 * 3072]; // x = rows(2560)y = columns(3072)

double avg = Parallel.For(0,array.Length,WHAT GOES HERE);

标准差相同&行平均值的标准偏差。

我对这些函数的循环版本都很正常,并且与中值滤波器方法结合使用时间过长。

最终产品是尝试获得阵列的中值滤波器。但第一步也很重要。所以,如果你有完整的解决方案,但如果你想帮助第一部分,这一切都是值得赞赏的。

+0

有什么办法可以利用预先定义的int函数进行ushorts吗? – GMAN 2013-02-15 16:37:00

回答

1

您是否试过PLINQ?

double average = array.AsParallel().Average(n => n); 

我不知道这将是多么高性能与大阵ushort值的,但它是值得的测试,看它是否符合您的需求。

+0

+1完美运作。我没有注意到这些数字的平均值是双倍数。测试后不得不使用双倍。 +1也是。 – user2330678 2014-08-01 23:14:22

相关问题