复数数组的总和

时间:2018-04-06 08:51:36

标签: c# complex-numbers

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

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的一系列像素的颜色的蓝色分量填充。这里,复数都有一个虚部0.现在我希望最后两个数组的每个成员都是前两个数组的所有成员的总和(再次,虚部将为0),但我如果不在我的循环中添加循环,就找不到“简单”的方法,我不太喜欢。

我知道我可以使用int或float数字而不是复数,这就是我最初所做的,但是当我打算使用AForge.NET框架中的Fast Fourier Transform函数时,我需要我的数据在复杂的形式。所以我不能只使用.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
}

1 个答案:

答案 0 :(得分:5)

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

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