【问题标题】:Sum of a Complex array复数数组的总和
【发布时间】:2018-09-16 06:07:28
【问题描述】:

我有几个复杂的数组,像这样创建的:

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),但我如果不在我的循环中添加循环,就找不到“简单”的方法,我不太喜欢。

我知道我可以使用整数或浮点数而不是复数,这就是我最初所做的,但由于我打算使用 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
}

【问题讨论】:

    标签: c# complex-numbers


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-07-21
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 2020-01-01
      • 2013-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多