我有一些复杂的数组,像这样创建:

System.Numerics.Complex[] ValeurPixelsExperiment = new System.Numerics.Complex[132];
System.Numerics.Complex[] ValeurPixelsReference = new System.Numerics.Complex[132];
System.Numerics.Complex[] ValeurPixelsSumExperiment = new System.Numerics.Complex[1024];
System.Numerics.Complex[] ValeurPixelsSumReference = new System.Numerics.Complex[1024];


前两个阵列填充有来自Bitmap Couleur的一系列像素的颜色的Blue分量。在这里,复数都有一个虚数部分0。现在我希望最后两个数组的每个成员都是前两个数组的on的所有成员的总和(虚构部分将再次为0),但是我如果不在我的循环中添加循环,就找不到一种“简单”的方法来完成它,我对此并不那么喜欢。

我知道我可以使用整数或浮点数来代替复杂数,这就是我最初所做的事情,但是由于我打算使用AForge.NET框架中的快速傅立叶变换功能,因此我的数据必须为复杂数形式。所以我不能只使用.Sum()

我希望我足够清楚!任何人都知道如何实现这一目标?

这是我的代码,使用我使用浮点数时残留的.Sum(),这是行不通的:

for (int i = 1; i < 1024; i++)
{
     for (int j = 157; j < 288; j++)
     {
          ValeurPixelsExperiment[j - 156] = Couleur.GetPixel(i, j).B;
     }
     ValeurPixelsSumExperiment[i] = ValeurPixelsExperiment //.Sum(); I NEED HELP HERE

     for (int j = 484; j < 615; j++)
     {
          ValeurPixelsReference[j - 483] = Couleur.GetPixel(i, j).B;
     }
     ValeurPixelsSumReference[i] = ValeurPixelsReference //.Sum(); AND HERE
}

最佳答案

Linq Sum()不支持Complex项作为参数;我建议Aggregate,例如:

// Aggeregate items in ValeurPixelsReference by summing them up
ValeurPixelsSumReference[i] = ValeurPixelsReference.Aggregate((s, a) => s + a);

关于c# - 复杂数组的总和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49688949/

10-17 00:02