C# 如何初始化复数数组,以便显示相位、幅值等属性
所以我有两种形式。一个表单获取数字并计算复数,然后将其保存到form1数组中。一切都被正确地传递和计算。我得到我的复杂数组没有问题。问题是当我试图得到复数的相位时。我知道幅值和相位是复杂结构的属性,因此我可以只执行load_Results.magnity或load_Results.phase并获得相应的值,但它没有给我将其作为属性的选项。我是否在表格1中以错误的方式初始化了它们?我如何才能使这些属性显示出来 这就是我的错误:C# 如何初始化复数数组,以便显示相位、幅值等属性,c#,winforms,complex-numbers,C#,Winforms,Complex Numbers,所以我有两种形式。一个表单获取数字并计算复数,然后将其保存到form1数组中。一切都被正确地传递和计算。我得到我的复杂数组没有问题。问题是当我试图得到复数的相位时。我知道幅值和相位是复杂结构的属性,因此我可以只执行load_Results.magnity或load_Results.phase并获得相应的值,但它没有给我将其作为属性的选项。我是否在表格1中以错误的方式初始化了它们?我如何才能使这些属性显示出来 这就是我的错误: Error 24 'System.Array' does not
Error 24 'System.Array' does not contain a definition for 'Magnitude' and no extension method 'Magnitude' accepting a first argument of type 'System.Array' could be found (are you missing a using directive or an assembly reference?)
表格一
public static double[] freqList;
public static Complex[] load_Results;
public form 1()
{ InitializeComponent();
freqList = new double[801];
load_Results = new Complex[801];
}
private void click_view(object sender, EventArgs e)
{ // part that fails
Graph.Series[0].Points.AddXY(freqList,load_Results.Magnitude);
}
表格二
private void test()
{
form1.load_Results[i] = Calculations(form1.freqList[i]);
}
public Complex Calculations(double freq)
{ Complex cval = new Complex();
double mag, phase;
//does math stuff to calculate mag and phase
cval = Complex.FromPolarCoordinates(mag, phase);
return (cval);
}
load_Results是一个数组,其中包含复杂类型的元素。您需要从该数组的每个元素中获取magnize属性并返回该属性。例如:
Graph.Series[0].Points.AddXY(freqList, load_Results.Select(x => x.Magnitude).ToArray());
试着养成使用C#命名和句法约定的习惯。变量不获取下栏:说
加载结果
,而不是加载结果
。使用整句话:frequency
,而不是freq
。不要在:返回值中插入不必要的括号代码>非返回(cval)代码>