2013-02-14 61 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

相關問題